[英]Can pm2 run an 'npm start' script
有没有办法让 pm2 运行 npm start 脚本,或者你只需要运行pm2 start app.js
所以在开发中
npm start
然后在使用 pm2 进行生产时,您将运行类似
pm2 start 'npm start'
有一种等效的方法可以forever
做到这一点:
forever start -c "npm start" ./
PM2 现在支持 npm start:
pm2 start npm -- start
要为 PM2 进程分配名称,请使用--name
选项:
pm2 start npm --name "app name" -- start
那些使用.json
文件之类的配置脚本来运行 pm2 进程的人可以使用npm start
或任何其他类似这样的脚本 -
我的应用程序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"
}
]
}
更多细节在这里。
是的。 使用pm2 start npm --no-automation --name {app name} -- run {script name}
。 有用。 --no-automation
标志在那里,因为没有它 PM2 在崩溃时不会重新启动你的应用程序。
使用npm run
pm2 start npm --name "{app_name}" -- run {script_name}
我在下面编写了 shell 脚本(名为start.sh
)。 因为我的package.json
有prestart
选项。 所以我想运行npm start
。
#!/bin/bash
cd /path/to/project
npm start
然后,通过pm2启动start.sh
。
pm2 start start.sh --name appNameYouLike
我需要在 pm2 中的应用程序上运行特定的 npm 脚本(对于每个 env)在我的情况下,它是在我创建临时/测试服务时
对我有用的命令(必须以这种方式转发 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"
希望有帮助
您需要在此处提供应用程序名称,例如 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 start,--name 到物种应用程序名称。
pm2 start npm --name "app" -- start
请参阅启用集群:
pm2 start npm --name "AppName" -i 0 -- run 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"
}
当其他人没有时,这对我有用
不幸的是,运行脚本start:prod
没有运气。
"scripts": {
"start:prod": "node index.js"
},
命令pm2 start npm -- run start:prod
崩溃
开始前不要忘记空格
pm2 start npm --[space]start
所以正确的命令是:
pm2 start npm -- start
不幸的是,pm2 似乎不支持您请求的确切功能https://github.com/Unitech/PM2/issues/1317 。
建议的替代方案是使用ecosystem.json
文件开始部署,其中可能包括生产和开发环境的设置。 但是,这仍然使用npm start
来引导您的应用程序。
pm2 start ./bin/www
可以跑步
如果你想部署多台服务器,你可以这样做。 而不是 pm2 start npm -- start
PM2 版本 4.2.1
让我们假设两个场景:
1. npm start //server.js
pm2 start "npm -- start" --name myMainFile
2. npm run main //main.js
pm2 start "npm -- run main" --name myMainFile
要使用npm start
方法运行 PM2 并为其name
,请运行以下命令,
pm2 start npm --name "your_app_name" -- start
要通过为日志传递日期格式来运行它,
pm2 start npm --name "your_name" --log-date-format 'DD-MM HH:mm:ss.SSS' -- start
对于普通用户
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 start npm -- start
关注https://github.com/Unitech/pm2/issues/1317#issuecomment-220955319
是的,绝对可以通过优雅地使用 pm2 配置(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”。
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 脚本(在应用程序的 package.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
在这里阅读更多
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.