是否有一种方法让pm2运行npm启动脚本,或者你只需要运行pm2 start app.js

所以在发展中

npm start

然后在使用pm2的生产中,你会运行这样的程序

pm2 start 'npm start'

有一种等效的方法可以永远做到这一点:

forever start -c "npm start" ./

当前回答

是的,你绝对可以通过优雅地使用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,——name为物种应用程序名称。

pm2 start npm --name "app" -- start

PM2现在支持npm start:

pm2 start npm -- start

要给PM2进程分配一个名称,使用——name选项:

pm2 start npm --name "app name" -- start

开始前别忘了留出空间

pm2 start npm --[space]start

所以正确的命令是:

pm2 start npm -- start

是的。使用pm2启动npm——no-automation——name{应用程序名称}——运行{脚本名称}。它的工作原理。——no-automation标志的存在是因为如果没有它,PM2将不会在应用崩溃时重新启动应用。

请参见启用集群:

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

你怎么看?