我正在尝试通过命令行使用pm2运行节点应用程序,并且只传递一个参数
pm2 start app.js --node-args="41"
pm2 start app.js --env dev --node-args="41"
我尝试用开发环境运行它,没有它,但在两种方式都没有用。 这样做的方法是什么?
答案 0 :(得分:4)
pm2命令行选项 - node-args 用于将参数传递给Node.js V8引擎,而不是传递给该引擎上运行的程序。
将参数传递给程序的正确方法是:
pm2 start app.js -- 41
对于开发环境:
pm2 start app.js --env dev -- 41
基本上,在最后两个破折号后添加的任何内容都可以通过 process.argv 作为数组访问。
答案 1 :(得分:0)
您可以在项目根目录中定义流程文件,并像这样传递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
版本,请执行以下操作
pm2 start process.json --only app-dev