npm start'脚本

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

所以在发展中

npm start

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

pm2 start 'npm start'

forever中有一个等价的方法:

forever start -c "npm start" ./
410364 次浏览

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

另一种建议是使用ecosystem.json文件从部署开始,它可以包括生产和开发环境的设置。然而,这仍然使用npm start来引导你的应用程序。

我在下面写了shell脚本(命名为start.sh)。 因为我的package.jsonprestart选项。 所以我想运行npm start.

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

然后,通过pm2启动start.sh

pm2 start start.sh --name appNameYouLike

是的。使用pm2 start npm --no-automation --name {app name} -- run {script name}。它的工作原理。--no-automation标志在那里因为如果没有它,当应用程序崩溃时,PM2将无法重新启动应用程序。

PM2现在支持npm start:

pm2 start npm -- start

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

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

请参见启用集群:

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

你怎么看?

那些使用类似.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"
}
]
}

更多详细信息在这里

现在,你可以用after:

pm2 start npm -- start

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

是的,我们可以,现在pm2支持npm start,——name为物种应用程序名称。

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

使用npm run

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

pm2 start ./bin/www

可以运行

如果你想部署多个服务器 你可以这样做。start

开始前别忘了留出空间

pm2 start npm --[space]start

所以正确的命令是:

pm2 start npm -- start

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

ecosystem.config.js:

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

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

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

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

它在CentOS 7上运行良好

PM2版本4.2.1

让我们举两个例子:

1. npm开始 / / server.js

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

2. NPM运行总管 / / main.js

pm2 start "npm -- run main" --name myMainFile

你需要在这里提供应用程序名称,比如myapp

pm2 start npm --name {appName} -- run {script name}

你可以通过

pm2 list

你也可以加上时间

pm2 restart "id" --log-date-format 'DD-MM HH:mm:ss.SSS'

pm2 restart "id" --time

您可以通过

pm2 log "id"

pm2 log "appName"

获取所有应用程序的日志

pm2 logs

我需要在我的应用程序在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"

希望有帮助

要用npm start方法运行PM2,并给它一个name,运行这个,
pm2 start npm --name "your_app_name" -- start < / p >

通过传递日志date-format来运行它,
pm2 start npm --name "your_name" --log-date-format 'DD-MM HH:mm:ss.SSS' -- start < / p >

对于普通用户

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

是的,你绝对可以通过优雅地使用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 !人

您可以将目录更改为项目

cd /my-project

然后运行

pm2 start "npm run start" \\ run npm script from your package.json

阅读更多在这里

首先,您需要创建一个run.js文件,并将下面的代码粘贴到该文件上。

const { spawn } = require('child_process');
//here npm.cmd for windows.for others only use npm
const workerProcess = spawn('npm.cmd', ['start']);


workerProcess.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
workerProcess.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
workerProcess.on('close', function (code) {
console.log('child process exited with code ' + code);
});

然后用pm2运行这个文件。

pm2 start run.js
  • 列表项