Я потратил полчаса, пытаясь выяснить это, поэтому поделился здесь ответом, чтобы помочь другим.
Хитрость (по крайней мере, на моем 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
, но если это работает для отладки плагинов веб-пакетов, это было бы круто!
Кстати, конкретная ошибка npm
, которую я пытался поймать, исправлена в npm@6.9.1
, которая должна быть скоро выпущена. Смотри https://github.com/npm/cli/pull/173.