有没有办法让pm2运行一个npm启动脚本,或者你只需要运行 pm2 start app.js
所以在发展中
npm start
然后在pm2的制作中你会运行类似的东西
pm2 start 'npm start'
永远有一种相同的方法可以做到这一点
forever start -c "npm start" ./
Dha*_*han 342
PM2现在支持npm start:
pm2 start npm -- start
Run Code Online (Sandbox Code Playgroud)
Jyo*_*ngh 79
那些使用像.json文件这样的配置脚本来运行pm2进程的人可以使用npm start或者像这样的任何其他脚本 -
我-APP-pm2.json
{
"apps": [
{
"name": "my-app",
"script": "npm",
"args" : "start"
}
]
}
Run Code Online (Sandbox Code Playgroud)
然后简单 -
pm2 start my-app-pm2.json
Run Code Online (Sandbox Code Playgroud)
编辑 - 要在父目录中具有此配置脚本并想要在子目录中启动应用程序时处理用例,请使用该cwd属性.
假设我们的应用程序位于nested-app相对于此配置文件的子目录中,则 -
{
"apps": [
{
"name": "my-nested-app",
"cwd": "./nested-app",
"script": "npm",
"args": "start"
}
]
}
Run Code Online (Sandbox Code Playgroud)
更多细节在这里.
jco*_*lum 29
是.使用pm2 start npm --no-automation --name {app name} -- run {script name}.有用.该--no-automation标志是存在的,因为没有它,当它崩溃PM2不会重新启动您的应用程序.
Tom*_*mri 28
我需要在 pm2 中的应用程序上运行特定的 npm 脚本(对于每个 env)在我的情况下,它是在我创建临时/测试服务时
对我有用的命令(必须以这种方式转发 args):
pm2 start npm --name "my-app-name" -- run "npm:script"
Run Code Online (Sandbox Code Playgroud)
例子:
pm2 start npm --name "myApp" -- run "start:test"
pm2 start npm --name "myApp" -- run "start:staging"
pm2 start npm --name "myApp" -- run "start:production"
Run Code Online (Sandbox Code Playgroud)
希望有帮助
小智 25
我在下面编写了shell脚本(命名start.sh).因为我package.json有prestart选择权.所以我想跑npm start.
#!/bin/bash
cd /path/to/project
npm start
Run Code Online (Sandbox Code Playgroud)
然后,从start.shpm2 开始.
pm2 start start.sh --name appNameYouLike
Run Code Online (Sandbox Code Playgroud)
小智 19
您需要在此处提供应用程序名称,例如 myapp
pm2 start npm --name {appName} -- run {script name}
Run Code Online (Sandbox Code Playgroud)
你可以通过
pm2 list
Run Code Online (Sandbox Code Playgroud)
你也可以添加时间
pm2 restart "id" --log-date-format 'DD-MM HH:mm:ss.SSS'
Run Code Online (Sandbox Code Playgroud)
或者
pm2 restart "id" --time
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式检查日志
pm2 log "id"
Run Code Online (Sandbox Code Playgroud)
或者
pm2 log "appName"
Run Code Online (Sandbox Code Playgroud)
获取所有应用的日志
pm2 logs
Run Code Online (Sandbox Code Playgroud)
Nel*_*ank 17
您可以将目录更改为您的项目
cd /my-project
Run Code Online (Sandbox Code Playgroud)
然后运行
pm2 start "npm run start" \\ run npm script from your package.json
Run Code Online (Sandbox Code Playgroud)
或者
pm2 start "yarn start"
Run Code Online (Sandbox Code Playgroud)
在这里阅读更多内容
Kev*_*per 11
如果您通过节点模块而不是全局使用 PM2,则需要进行设置interpreter: 'none'以使上述解决方案起作用。相关文档在这里。
在ecosystem.config.js:
apps: [
{
name: 'myApp',
script: 'yarn',
args: 'start',
interpreter: 'none',
},
],
Run Code Online (Sandbox Code Playgroud)
Ash*_*pta 10
对于普通用户
PM2 现在支持 npm start:
pm2 start npm -- start
Run Code Online (Sandbox Code Playgroud)
要为 PM2 进程分配名称,请使用“--name”选项:
pm2 start npm --name "your desired app name" -- start
Run Code Online (Sandbox Code Playgroud)
对于根用户
sudo pm2 start npm -- start
Run Code Online (Sandbox Code Playgroud)
要为 PM2 进程分配名称,请使用“--name”选项:
sudo pm2 start npm --name "your desired app name" -- start
Run Code Online (Sandbox Code Playgroud)
是的,我们可以,现在pm2支持npm start,--name到种类应用程序名称。
pm2 start npm --name "app" -- start
Run Code Online (Sandbox Code Playgroud)
pm2 start npm --name "custom_pm2_name" -- run prod
"scripts": {
"prod": "nodemon --exec babel-node ./src/index.js"
}
Run Code Online (Sandbox Code Playgroud)
当其他人没有时,这对我有用
是的,绝对可以通过优雅地使用 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"
}
Run Code Online (Sandbox Code Playgroud)
假设我们想使用 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"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
假设你的机器上已经安装了 Node.js、NPM 和 PM2。下面应该是通过 pm2 启动应用程序的命令,该命令将依次运行 npm 脚本(应用程序的 package.json 文件中提到的命令行):
对于生产环境:
pm2 start ecosystem.config.js --env production --only NodeServer
Run Code Online (Sandbox Code Playgroud)
对于开发环境:
pm2 start ecosystem.config.js --only NodeServer
Run Code Online (Sandbox Code Playgroud)
...还有轰隆隆!伙计们
请参阅启用群集:
pm2 start npm --name "AppName" -i 0 -- run start
Run Code Online (Sandbox Code Playgroud)
你怎么看?
| 归档时间: |
|
| 查看次数: |
115666 次 |
| 最近记录: |