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

所以在发展中

npm start

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

pm2 start 'npm start'

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

forever start -c "npm start" ./

当前回答

使用npm运行

Pm2启动NPM——name "{app_name}"——run {script_name}

其他回答

如果你通过节点模块而不是全局使用PM2,你需要设置interpreter: 'none'以使上述解决方案工作。相关文档在这里。

在ecosystem.config.js:

  apps: [
    {
      name: 'myApp',
      script: 'yarn',
      args: 'start',
      interpreter: 'none',
    },
  ],

我需要在我的应用程序pm2中运行一个特定的npm脚本(对于每个env) 在我的例子中,是当我创建一个登台/测试服务时

对我有用的命令(参数必须这样转发):

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"

希望有帮助

Pm2启动NPM——name" custom_pm2_name"——运行prod

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

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

它在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

我在下面写了shell脚本(名为start.sh)。 因为我的包裹。Json有预启动选项。 我想运行npm start。

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

然后,通过pm2启动start.sh。

pm2 start start.sh --name appNameYouLike