如何使用VS Code调试npm本身(不是我的代码)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用VS Code调试npm本身(不是我的代码)?相关的知识,希望对你有一定的参考价值。

npmnpm的代码中崩溃,而不是我的代码。我想使用VSCode IDE调试器调试到npm进程,以便我可以检查调用堆栈中的变量以试图找出出错的地方。

什么是正确的launch.json配置调试npm本身?

答案

我浪费了半个小时试图解决这个问题,所以在这里分享答案来帮助别人。

诀窍(至少在我的Mac上)是运行npm-cli.js而不是运行npm可执行文件。

这是我用来调试launch.jsonnpm outdated -g配置。要调试其他npm命令,只需更改下面的args即可。

{
  "type": "node",
  "request": "launch",
  "name": "Debug NPM Outdated",
  "cwd": "/usr/local/lib/node_modules/npm/bin/",
  "args": [
    "npm-cli.js",
    "outdated",
    "-g",
  ],
  "protocol": "inspector",
  "console": "integratedTerminal",
  "internalConsoleOptions": "neverOpen",
  "disableOptimisticBPs": true
},

我没有测试过他是否能够调试由npm运行的其他代码,但是如果这对于调试webpack插件有用,那就太酷了!

顺便说一句,我试图捕获的具体npm错误已在npm@6.9.1中修复,应尽快发布。见https://github.com/npm/cli/pull/173

以上是关于如何使用VS Code调试npm本身(不是我的代码)?的主要内容,如果未能解决你的问题,请参考以下文章

根据要求触发VS Code python调试器

如何在 VS Code 中调试夜班测试

如何在 VS Code 中调试颤振 build_runner 构建?

VS Code 在集成终端而不是调试控制台中开始调试

为啥我的 VS Code 调试器在我的 C++ 代码周围弹跳?

如何使用 VS Code 在 Docker 容器中远程调试 python 代码