以前にgulpを使用してgulpを実行し、アプリケーションとリスナーを Visual Studio Codeデバッガー から開始していましたが、最近npm代わりに。残念ながらVSCodeでは、デバッガを介してnpmスクリプトを実行できなかったため、実行に頼らなければなりませんでしたnodeサーバーを直接起動し、コードを自動的にリロードしたリスナータスクを取り除きます。
これは単純なことのように思えますが、今のところあまり運がありません。以下は、使用しようとしたが、npmが見つからなかったlaunch.jsonファイルの抜粋です。
{
...
"program": "npm",
"args": [
"run",
"debug"
],
...
}
これにより、次のエラーが発生します。
エラー要求「起動」:プログラム「c:\ myproject\npm」は存在しません
関連リソース:
VS Codeは 2016年10月からのリリース でnpmスクリプトと他の起動シナリオをサポートするようです。
以下は、 GitHubで提案 の例です。
packages.json
"scripts": {
"debug": "node --nolazy --debug-brk=5858 myProgram.js"
},
vscode launch config
{
"name": "Launch via NPM",
"type": "node",
"request": "launch",
"cwd": "${workspaceRoot}",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script", "debug"
],
"port": 5858
}
.vscode/launch.jsonで新しいデバッグターゲットを構成します。
{
"name": "Attach To npm",
"type": "node",
"request": "attach",
"port": 5858,
"address": "localhost",
"restart": false,
"sourceMaps": false,
"outDir": null,
"localRoot": "${workspaceRoot}",
"remoteRoot": null
}
--debug-brkオプションを使用してノードを実行するようにnpmを構成します。
"scripts": {
"start": "node app.js",
"debug": "node --debug-brk app.js"
...
次のようにシェルからアプリを起動します。
$npm run debug
デフォルトでは、プログラムはデバッガーを接続するためにポート5858で待機します
したがって、Visual Studioコードでデバッガーを実行します(「npmに接続」)。
デバッガをお楽しみください:)
package.json
のscripts
セクションを変更せずにnpmで実行できます
ここでのコツは、--inspect-brk=9229
をノードに渡すことです。
コマンドはnpm run start -- --inspect-brk=9229
のようになります
.vscode/launch.json
は次のとおりです。
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch via NPM",
"runtimeExecutable": "${env:NVM_BIN}/npm", //change this to your npm path
"runtimeArgs": [
"run-script",
"start",
"--",
"--inspect-brk=9229"
],
"port": 9229
},
]
}
GutiMacとJpiersonが提供するソリューションを試しましたが、何らかの理由でデバッガーをこれらのいずれでも動作させることができませんでした。
私のためにうまくいった代替ソリューション(Ubuntu 16、ノード8.9.1、VS 1.8.1)は、このシンプルなアプリランチャーを使用することです(VS launch.jsonの構成配列に追加されます):
{
"type": "node",
"request": "launch",
"name": "Launch Node App",
"program": "${workspaceFolder}/my-app/my-npm-start-script-dir/index.js"
}