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

How to debug npm itself (not my code) using VS Code?

npmnpm 的代码中崩溃,而不是我的。我想使用 VSCode IDE 调试器调试到 npm 进程,这样我就可以检查调用堆栈中的变量以找出问题所在。

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

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

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

这是我用来调试 npm outdated -glaunch.json 配置。要调试其他 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