nodemon
をシステムにグローバルパッケージとしてインストールしました。 cmdでnodemon
を実行すると機能します。
しかし、このlaunch.json
ファイルでvscodeを使用すると、vscodeは次の例外をスローします。
起動のリクエスト:ランタイム実行可能ファイルXXX\XXX\XXX\XXX\nodemonは存在しません
launch.jsonは次のとおりです。
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "node",
"request": "launch",
"program": "app.js",
"stopOnEntry": false,
"args": [],
"cwd": ".",
"runtimeExecutable": nodemon,
"runtimeArgs": [
"--nolazy"
],
"env": {
"NODE_ENV": "development"
},
"externalConsole": false,
"preLaunchTask": "",
"sourceMaps": false,
"outDir": null
},
{
"name": "Attach",
"type": "node",
"request": "attach",
"port": 5858
}
]
}
runtimeExecutable
のnodeminを消去すると、nodeで完全に実行されます
最初に、nodemonをdev依存関係としてインストールします。
npm install --save-dev nodemon
VSコードの新しいバージョンの場合セットアップ.vscode/launch.json
このようなファイル:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "nodemon",
"runtimeExecutable": "${workspaceFolder}/node_modules/nodemon/bin/nodemon.js",
"program": "${workspaceFolder}/app.js",
"restart": true,
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}]
}
最も重要な部分は、nodemonスクリプトを指すruntimeExecutable
プロパティと、エントリポイントスクリプトを指すprogram
プロパティです。
古いVSコードを使用する場合(使用すべきではない)、この起動構成を試してください:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch with nodemon",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/node_modules/nodemon/bin/nodemon.js",
"args": ["${workspaceRoot}/app.js"],
"runtimeArgs": ["--nolazy"]
}
]
}
最も重要な部分は、nodemonスクリプトを指すprogram
プロパティと、通常のエントリポイントスクリプトを指すargs
プロパティです。
添付されたデバッガを使用して@AdrianTの答えを得ることができませんでした。これを行うための新しい組み込みのサポートされた方法があるようです:
Launch.jsonに次のようなものが追加されます。
{
"type": "node",
"request": "launch",
"name": "nodemon",
"runtimeExecutable": "nodemon",
"program": "${workspaceRoot}/app.js",
"restart": true,
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
「プログラム」設定が正しいエントリポイントスクリプトであることを確認してください。
これを機能させるには、nodemonをグローバルにインストールする必要があります(npm install -g nodemon)( ドキュメント に従って)
これでアプリが実行され、ヒットするブレークポイントを設定して、コンソールが統合ターミナルウィンドウにログを記録できます。
デバッグセッションを終了しても、デバッグするプログラムは終了するだけで、nodemon自体は終了しないことに注意してください。 nodemonを終了するには、統合端末でControl-Cを押します。
Visual Studioコードで起動設定を作成します。
{
"name": "Attach",
"type": "node",
"request": "attach",
"port": 5858,
"restart": true
}
コマンドラインからnodemonを実行します:nodemon --debug server.js
次に、VCおよびvuala。
添付は間違いなく簡単なオプションです。コードが壊れていることを確認するには、nodemonを--inspect-brk
(ノード8以降)で実行してください。例:
nodemon --inspect-brk src/app.js
Nodemonを起動すると、デバッグ接続用に開いているポートがログに記録されます。
Debugger listening on ws://127.0.0.1:9229/someUUID
このポートを使用して、非常に簡単な起動構成を構築できます。
{
"type": "node",
"request": "attach",
"name": "Attach",
"port": 9229,
"restart": true
},
いいえ、現在はできません。しかし、nodemonを使用してなんとか機能させることができました。 Gruntから始めます。ただし、同等のコマンドラインでも同じことが行われます。
[〜#〜] edit [〜#〜]:夕方のテストの後、以下のアプローチはやや不安定だと言えます:S、アタッチが断続的に失敗し、ブレークポイントが無視されることがあります。
EDIT2:nodeArgs
に['--debug-brk=5860']
を使用して、Gruntfileでデフォルト以外のデバッグポートを指定することもできます。 --debug-brk
の代わりに--debug
を使用することも推奨されています。おそらく、これは現在のフレークネスを削除します。私は戻ってきて、それが役立つかどうかここで言及します(私は現在プロジェクトを切り替えました)。
これは、Windows 10の現在のVS Codeバージョン(v0.10.6など)の以下の設定で作業している人に役立つかもしれませんが、おそらくMacでも動作するでしょう(後で確認するかもしれません)。ただし、デバッガーがファイルを取得する前に、ファイルを変更して保存することにより、再構築をトリガーする必要がある場合があることに注意してください。
/.vscode/launch.json
{
"configurations": [{
"name": "Launch",
"outDir": null
},{
"name": "Attach",
"type": "node",
"request": "attach",
"port": 5858
}]
}
/Gruntfile.js
nodemon : {
dev : {
script : 'launcher.js'
},
options : {
ignore : ['node_modules/**', 'Gruntfile.js'],
nodeArgs: ['--debug'],
env : { PORT : '4123'
}
}
}
ここでは指定されていないので、デバッグポート5858がデフォルトであると思います(上記のlaunch.json
にあります)。
Node Execプラグインを使用します。F8およびF9(エディターで開いているファイルに適用)を押すと、vcsでノードアプリを実行および停止できます。これは(一時的な)回避策。
はい、できます!最近の更新の時点で、実行中のNodemonプロセスにデバッガーをアタッチできます。 このページには詳細情報があります 。ページでnodemonを検索して、手順を確認します。
https://github.com/Microsoft/vscode-recipes/tree/master/nodemon
上記のリンクは、nodemon + expressアプリを正常にデバッグするのに役立ちました。手順はよく説明されています。
launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Node: Nodemon",
"processId": "${command:PickProcess}",
"restart": true,
"protocol": "inspector",
}
]
}
npmスクリプト
"dev-server": "nodemon ***--inspect*** server.js"
手順:
これで、デバッグできるようになります。
役に立たなかった場合は、公式ドキュメントをご覧ください。設定オプションについては、こちらをご覧ください。 https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_launch-configuration-support-for-npm-and-other-tools