web-dev-qa-db-ja.com

nodemonで起動するようにVisual Studio Codeを構成できますか

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で完全に実行されます

36
Mickel Sierra

最初に、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プロパティです。

39
Adrian T

添付されたデバッガを使用して@AdrianTの答えを得ることができませんでした。これを行うための新しい組み込みのサポートされた方法があるようです:

  1. 起動構成ドロップダウンを開き、「構成の追加...」を選択します
  2. 「Node.js:Nodemon Setup」を選択します

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を押します。

28
Mathew

Visual Studioコードで起動設定を作成します。

{
    "name": "Attach",
    "type": "node",
    "request": "attach",
    "port": 5858,
    "restart": true
}

コマンドラインからnodemonを実行します:nodemon --debug server.js

次に、VCおよびvuala。

15
Yevgeni

添付は間違いなく簡単なオプションです。コードが壊れていることを確認するには、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
},
3
Fred

いいえ、現在はできません。しかし、nodemonを使用してなんとか機能させることができました。 Gruntから始めます。ただし、同等のコマンドラインでも同じことが行われます。

[〜#〜] edit [〜#〜]:夕方のテストの後、以下のアプローチはやや不安定だと言えます:S、アタッチが断続的に失敗し、ブレークポイントが無視されることがあります。

EDIT2nodeArgs['--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にあります)。

1
Bart

Node Execプラグインを使用します。F8およびF9(エディターで開いているファイルに適用)を押すと、vcsでノードアプリを実行および停止できます。これは(一時的な)回避策。

0
KiSa87

はい、できます!最近の更新の時点で、実行中のNodemonプロセスにデバッガーをアタッチできます。 このページには詳細情報があります 。ページでnodemonを検索して、手順を確認します。

0
Aron

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"

手順:

  1. Npmスクリプトを使用して、サーバーを実行します。スクリプトの--inspect argに注意してください
  2. ビジュアルコードデバッガーを起動すると、ノードサーバープロセスを選択するためのプロンプトが表示されます
  3. ノードサーバープロセスを選択する

これで、デバッグできるようになります。

役に立たなかった場合は、公式ドキュメントをご覧ください。設定オプションについては、こちらをご覧ください。 https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_launch-configuration-support-for-npm-and-other-tools

0
Ninjaneer