如何将自定义参数传递给应用程序
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 作为数组访问。
您可以在项目根目录下定义一个流程文件,然后像这样传递 env
和 args
:
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
我正在尝试 运行 通过命令行使用 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 作为数组访问。
您可以在项目根目录下定义一个流程文件,然后像这样传递 env
和 args
:
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