pm2是否可以运行“ npm start”脚本

pm2是否可以运行npm start脚本,还是只需要运行 pm2 start app.js

所以在发展中

npm start

然后在pm2的生产环境中运行类似

pm2 start 'npm start'

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

forever start -c "npm start" ./

JinJin2020/03/24 09:52:03

现在,您可以在以下时间使用:

pm2 start npm -- start

跟着https://github.com/Unitech/pm2/issues/1317#issuecomment-220955319

GOLEY前端2020/03/24 09:52:03

在CentOS 7上运行正常

PM2版本4.2.1

让我们采取两种情况:

1. npm start //server.js

pm2 start "npm -- start" --name myMainFile

2. npm运行main //main.js

pm2 start "npm -- run main" --name myMainFile
Green路易2020/03/24 09:52:03

我需要在pm2中的应用程序上运行特定的npm脚本(对于每个环境),就我而言,这是我创建登台/测试服务的时间

对我有用的命令(必须以这种方式转发args):

pm2 start npm --name "my-app-name" -- run "npm:script"

例子:

pm2 start npm --name "myApp" -- run "start:test"

pm2 start npm --name "myApp" -- run "start:staging"

pm2 start npm --name "myApp" -- run "start:production"

希望能有所帮助

猴子2020/03/24 09:52:03

开始之前不要忘记空间

pm2 start npm --[space]start

所以正确的命令是:

pm2 start npm -- start
樱小胖Mandy2020/03/24 09:52:02

pm2 start npm --name "custom_pm2_name" -- run prod

"scripts": {
    "prod": "nodemon --exec babel-node ./src/index.js"
  }

其他人没有的时候这对我有用

2020/03/24 09:52:02

不幸的是,似乎pm2不支持您请求的确切功能https://github.com/Unitech/PM2/issues/1317

建议的替代方案是使用ecosystem.json文件“ 部署入门”,其中可能包括生产和开发环境的设置。但是,这仍npm start用于引导您的应用程序。

LGil2020/03/24 09:52:02
pm2 start ./bin/www

可以跑步

如果您想部署多个服务器,则可以这样做。代替pm2 start npm-开始

宝儿理查德2020/03/24 09:52:02

请参阅启用集群:

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

你怎么看?

小卤蛋神乐L2020/03/24 09:52:02

PM2现在支持npm start:

pm2 start npm -- start
猴子Davaid老丝2020/03/24 09:52:02

是的,我们可以,现在pm2支持npm start,--name到种类应用程序名称。

pm2 start npm --name "app" -- start
Gil2020/03/24 09:52:02

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

老丝2020/03/24 09:52:02

使用 npm run

pm2 start npm --name "{app_name}" -- run {script_name}

Gil伽罗小宇宙2020/03/24 09:52:02

使用诸如.json文件之类的配置脚本来运行pm2进程的用户可以使用npm start或任何其他类似这样的脚本-

my-app-pm2.json

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

然后简单地-

pm2 start my-app-pm2.json

编辑 -要处理用例,当您在父目录中拥有此配置脚本并想要在子目录中启动应用程序时,请使用cwd属性。

假设我们的应用程序位于nested-app相对于此配置文件的子目录中,则-

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

这里有更多细节

猴子神奇2020/03/24 09:52:02

我在下面编写了shell脚本(名为start.sh)。因为我package.jsonprestart选择。所以我要跑步npm start

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

然后,从start.shpm2 开始

pm2 start start.sh --name appNameYouLike