如何将自定义parameter passing给应用程序

我试图通过命令行与pm2运行节点应用程序,并只传递一个参数

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

我试图用开发环境来运行它,但没有它,但在两个方面都没有奏效。 有什么办法呢?

pm2命令行选项–node-args用于将parameter passing给Node.js V8引擎,而不是在该引擎上运行的程序。

将parameter passing给你的程序的正确方法是:

 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版本,执行如下

pm2 start process.json --only app-dev