npm
在npm
的代码中崩溃,而不是我的代码。我想使用VSCode IDE调试器调试到npm
进程,以便我可以检查调用堆栈中的变量以试图找出出错的地方。
什么是正确的launch.json
配置调试npm
本身?
我浪费了半个小时试图解决这个问题,所以在这里分享答案来帮助别人。
诀窍(至少在我的Mac上)是运行npm-cli.js
而不是运行npm
可执行文件。
这是我用来调试launch.json
的npm 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
错误已在[email protected]
中修复,应尽快发布。见https://github.com/npm/cli/pull/173。