私は現在 nodemon とともにnodeを使用しています。次に、ノードでインスペクタを使用するのは良いことだと思うようになったので、 node-inspector を使い始めました。
ただし、両方を同時に実行することはできますか?
通常、nodemonを実行するには、次のようにします。
nodemon server.js
//and similarly
node-debug server.js
私も試しました:
nodemon --debug http.js
しかし、残念ながらこれもうまくいきませんでした。
でも一緒に!?
サーバーをnodemon --debug server.js
で起動し、nodemonをバックグラウンドにプッシュしない限り、別のターミナルウィンドウでノードインスペクターを実行する必要があります。
これらを1つのコマンドとして実行する場合、これは私にとってはうまくいきます:node-inspector & nodemon --debug app.js
(app.jsをスクリプトの名前に置き換えます)。すべてがうまくいかない場合は、ノードインスペクタを手動で強制終了する必要がある場合がありますが、この方法でコマンドを実行すると、必要に応じてrs
を実行して手動でnodemonを再起動できます。 HTH
OSに依存しないソリューションが必要で、ウィンドウなどのハッキングが不要な場合。
Npm-run-allは、複数のnpmスクリプトを並列または順次実行できるCLIツールです。したがって、package.jsonを次のように設定します。
"scripts": {
"start": "npm-run-all --parallel lint start:debug start:server",
"lint": "eslint . --ext .js",
"start:debug": "node-debug server.js",
"start:server": "nodemon server.js"
}
そして、CLIから、次のようにします。npmstart
警告:私の経験から、nodemonとnode-debugを一緒に実行すると、奇妙なノードインスペクターの動作が発生することがあります。ですから、デバッグ時にnodemonをスクリプトから削除することを選択し、ノードインスペクターのsave-live-edit機能を使用してファイルをオンザフライで変更しました。
{
"scripts": {
"dev": "npx nodemon --exec \"node --inspect --debug-port=0.0.0.0 src/index.js\""
}
}
私はLinuxで実行しているので、 rpaskettの回答 に基づいて bashスクリプトを記述 にしたので、毎回その厄介なコマンドを覚える必要はありません。
しかし、私はあなたがWindowsを実行しているコメントに気づきました。ここにいくつかのオプションがあります:
BashスクリプトをWindowsバッチに変換し、C:\Windows\System32\node-DEV.bat
として保存できます。私はそれをしました、そしてそれは私のWindows PCで動作します:
@echo off
echo Starting DEV environment for %1
start node-inspector
nodemon --debug %1
その後、node-DEV server.js
を実行できるはずです。
別のオプション;しばらく更新されていないように見えますが、Node.jsで記述されたプラットフォームに依存しない nodedev のようなものを実行できます。
または、便利なものがあれば、Cygwin環境内でbashスクリプトを実行することもできます。
Bashシェルを実行しているWindowsユーザー向けのハック修正:
まず、 node-inspectorをパスに追加します。 (npmがnpm list -g
でパッケージをインストールしている場所を見つけることができます)
次に、このコマンドをbashで使用するか、npmスクリプトに追加します。
START /B node-inspector && nodemon --debug server.js
START /B
は、バックグラウンドで実行するWindowsコマンドです。
以下を使用して、node-inspectorとnodemonをインストールする必要があります。
npm install -g nodemon
npm install -g node-inspector
Windowsで実行するには、新しい.batファイルを作成し、次の行を追加します。
@echo off
echo Starting developer enviroment of the file %1
start nodemon --debug-brk %1
node-debug %1
そして実行します:
node_desarrollo.bat "実行するファイルの名前.js"
エラーで実行された場合:
Error: listen EADDRINUSE :::5858
at Object.exports._errnoException (util.js:855:11)
at exports._exceptionWithHostPort (util.js:878:20)
at Agent.Server._listen2 (net.js:1237:14)
at listen (net.js:1273:10)
at Agent.Server.listen (net.js:1369:5)
at Object.start (_debug_agent.js:21:9)
at startup (node.js:72:9)
at node.js:980:3
ノードインスペクタが接続するためにそのポートを開く必要があるので正常ですが、nodemon --debug-brk %1
が5858ポートを開いたため、開くことができず、EADDRINUSE :::5858
エラーが表示されます。フラグ--debug-brk
nodemon最初の行にブレークポイントを作成する必要があります。 .batの実行後にfile.jsを変更して、デバッガーに反映された変更を確認してください。このデバッガーが再起動し、file.jsで行われた変更を表示します。 JSをコーディングしてください!!!
ノードインスペクターでノードモンにニースをプレイさせることができませんでした。一度変更すると再起動しますが、その後は再起動しません。多分それは私が港湾労働者のコンテナーを使用しているためです。
アプリケーションをリロードする最も簡単な方法は、ノードインスペクターにそれを実行させることです(これは両方を実行することに対する答えではないことを知っていますが、私にとってはうまくいきました)。
次の方法でアプリケーションを起動します。
node-inspector --save-live-edit & \
node --debug /app/server.js