pm2可以运行“npm start”脚本

有没有办法让pm2运行一个npm启动脚本,或者你只需​​要运行pm2 start app.js

所以在开发中

npm start

然后在pm2的生产中,你会运行类似的东西

pm2 start 'npm start'

有一种相同的方式永远做到这一点

forever start -c "npm start" ./

PM2现在支持npm start:

 pm2 start npm -- start 

我在下面写了shell脚本(名为start.sh )。 因为我的package.jsonprestart选项。 所以我想运行npm start

 #!/bin/bash cd /path/to/project npm start 

然后,通过pm2启动start.sh

 pm2 start start.sh --name appNameYouLike 

那些使用像.json文件这样的configuration脚本运行pm2进程的用户可以使用npm start或其他任何脚本 –

我-APP-pm2.json

 { "apps": [ { "name": "my-app", "script": "npm", "args" : "start" } ] } 

然后简单地 –

 pm2 start my-app-pm2.json 

编辑 – 当你在父目录中有这个configuration脚本,并且想要在子目录中启动一个应用时,处理这个用例,然后使用cwd属性。

假设我们的应用程序在相对于这个configuration文件的子目录nested-app ,那么 –

 { "apps": [ { "name": "my-nested-app", "cwd": "./nested-app", "script": "npm", "args": "start" } ] } 

更多细节在这里 。

是。 使用pm2 start npm --no-automation --name {app name} -- run {script name} 。 有用。 --no-automation标志在那里, 因为没有它PM2将不会重新启动你的应用程序,当它崩溃。

请参阅启用群集:

 pm2 start npm --name "AppName" -i 0 -- run start 

你怎么看?

不幸的是,pm2似乎并不支持你要求的确切functionhttps://github.com/Unitech/PM2/issues/1317 。

提出的替代scheme是使用ecosystem.json文件部署入门可能包括生产环境和开发环境的设置。 但是,这仍然使用npm start来启动你的应用程序。

现在,你可以使用后:

 pm2 start npm -- start 

按照https://github.com/Unitech/pm2/issues/1317#issuecomment-220955319