36

アプリケーションはによって実行されます

pm2 start app.js

また

pm2 start config.json

node_inspector を使用してアプリケーションをローカルでデバッグしたいと考えています。debug引数を追加しました

pm2 start --node-args="--debug=7000" app.js

config.json正常に動作しますが、スクリプトの代わりに提供するとapp.js、デバッグに関する引数を渡す方法がわかりません。構成の次の部分が機能しない

{
  "apps": [
    {
      "name": "myName",
      "script": "app.js",
      "args": "['--debug=7000']"
      ............
      }
    ]
}

では、pm2 によって実行され、config を使用してアプリケーションをデバッグする方法は?

4

3 に答える 3

50

あなたはほとんどそこにいます、node_args代わりに使用してくださいargs

  • argsあなたのスクリプト引数です
  • node_argsノード実行可能ファイルに渡される引数です

    {
      "name": "myName",
      "script": "app.js",
      "node_args": ["--debug=7000"]
    }
    

PM2 json スキーマ

この後もデバッグ設定に問題がある場合は、デバッグ設定を有効にするためにクラスター モードを無効にする必要がある場合があります。

また、すべての引数を 1 つの文字列として渡す場合、node_args 値に括弧は必要ないことに注意してください。

于 2015-04-27T15:49:23.293 に答える
8

[pm2 バージョン 3.2.2]

PM2 で Vscode をアタッチする場合は、次のようにします。

ecosystem.config.js であるエコシステム ファイルで、apps の下に次の行を追加します。

node_args : ["--inspect"]

これを追加すると、スクリプトの呼び出し中に 2 つのノード引数が自動的に設定されます。彼らは--inspect--inspect-port=9232です。

それらはで見ることができますconsole.log(process.process.execArgv)

また、インスタンスの数が 1 より大きい場合、上記の引数は、この pm2 の下にある他のノード インスタンスごとにこのポート番号を増やし続けます。

たとえば、2 番目のノード インスタンスの場合、pm2 は--inspect,を渡します--inspect-port=9233

inspect-port を明示的に値に設定した場合、次のように args --inspect--inspect-port=9200、 が表示されます。--inspect-port=9230

また、必要なポートを使用していないようです。しかし、pm2 の性質を考えると、特定のポートを使用しない方が良いかもしれません。

お役に立てれば。

于 2018-10-17T22:24:19.833 に答える
5

それを行う別の方法は

env: {
    NODE_OPTIONS: '--inspect'
}

ecosystem.config.js ファイルで。

またはあなたの pm2.yml で

apps:
- script: ./server.js
  env:
    DEBUG: express:*
  node_args: "--inspect=3500"
于 2019-06-14T01:31:01.067 に答える