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.json
有prestart
选项。 所以我想运行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