是否有一种方法让pm2运行npm启动脚本,或者你只需要运行pm2 start app.js
所以在发展中
npm start
然后在使用pm2的生产中,你会运行这样的程序
pm2 start 'npm start'
有一种等效的方法可以永远做到这一点:
forever start -c "npm start" ./
是否有一种方法让pm2运行npm启动脚本,或者你只需要运行pm2 start app.js
所以在发展中
npm start
然后在使用pm2的生产中,你会运行这样的程序
pm2 start 'npm start'
有一种等效的方法可以永远做到这一点:
forever start -c "npm start" ./
当前回答
是的。使用pm2启动npm——no-automation——name{应用程序名称}——运行{脚本名称}。它的工作原理。——no-automation标志的存在是因为如果没有它,PM2将不会在应用崩溃时重新启动应用。
其他回答
那些使用类似.json文件的配置脚本来运行pm2进程的人可以使用npm start或任何其他类似的脚本
my-app-pm2.json
{
"apps": [
{
"name": "my-app",
"script": "npm",
"args" : "start"
}
]
}
那么简单——
pm2 start my-app-pm2.json
Edit -当你在父目录中有这个配置脚本,并且想要在子目录中启动应用程序时,使用cwd属性来处理用例。
假设我们的应用程序在相对于这个配置文件的nested-app子目录中,那么-
{
"apps": [
{
"name": "my-nested-app",
"cwd": "./nested-app",
"script": "npm",
"args": "start"
}
]
}
这里有更多细节。
您可以将目录更改为项目
cd /my-project
然后运行
pm2 start "npm run start" \\ run npm script from your package.json
点击这里阅读更多
是的。使用pm2启动npm——no-automation——name{应用程序名称}——运行{脚本名称}。它的工作原理。——no-automation标志的存在是因为如果没有它,PM2将不会在应用崩溃时重新启动应用。
是的,你绝对可以通过优雅地使用pm2配置(json)文件非常有效地做到这一点。
包中。Json文件(包含以下示例脚本)
"scripts": {
"start": "concurrently npm:server npm:dev",
"dev": "react-scripts start",
"build": "node ./scripts/build.js",
"eject": "react-scripts eject",
"lint": "eslint src server",
"shivkumarscript": "ts-node -T -P server/tsconfig.json server/index.ts"
}
假设我们想要使用pm2实用程序运行名为“shivkumarscript”的脚本。因此,我们的pm2配置文件应该如下所示,包含值为'npm'的'script'键和值为'run '的'args'键。在本例中,脚本名称为“shivkumarscript”。
ecosystem.config.json文件
module.exports = {
apps: [
{
name: "NodeServer",
script: "npm",
automation: false,
args: "run shivkumarscript",
env: {
NODE_ENV: "development"
},
env_production: {
NODE_ENV: "production"
}
}
]
}
假设你已经在你的机器上安装了Node.js, NPM和PM2。然后下面应该是通过pm2启动应用程序的命令,它将反过来运行npm脚本(应用程序包中提到的命令行)。json文件):
生产环境:
pm2 start ecosystem.config.js --env production --only NodeServer
开发环境:
pm2 start ecosystem.config.js --only NodeServer
...和Boooom !人
对于普通用户
PM2现在支持npm start:
pm2 start npm -- start
要给PM2进程分配一个名称,使用"——name"选项:
pm2 start npm --name "your desired app name" -- start
对于root用户
sudo pm2 start npm -- start
要给PM2进程分配一个名称,使用"——name"选项:
sudo pm2 start npm --name "your desired app name" -- start