如何将自定义参数传递给应用程序

how to pass custom arguments to app

我正在尝试 运行 通过命令行使用 pm2 节点应用程序并只传递一个参数

pm2 start app.js --node-args="41"
pm2 start app.js --env dev --node-args="41"

我尝试 运行 它与开发环境和没有它,但在这两种方式都没有奏效。 有什么办法吗?

pm2 命令行选项 --node-args 用于将参数传递给 Node.js V8 引擎,而不是程序 运行引擎。

向程序传递参数的正确方法是:

pm2 start app.js -- 41

对于开发环境:

pm2 start app.js --env dev -- 41

所以基本上,您在最后两个破折号之后添加的任何内容都可以通过 process.argv 作为数组访问。

您可以在项目根目录下定义一个流程文件,然后像这样传递 envargs

process.json

{
  "apps" : [
    {
      "name"               : "app-prod",
      "script"             : "app.js",
      "env": {
        "NODE_ENV": "production"
      }
    },
    {
      "name"               : "app-dev",
      "script"             : "app.js",
      "args"               : "41",
      "env": {
        "NODE_ENV": "development"
      }
    }
  ]
}

此定义将允许您传递仅在您的 development 版本中可用的命令行参数 (41)。 那么,如果你想要运行development版本的app,执行如下

pm2 start process.json --only app-dev