我在这里看到了很多问题,但这对我不起作用。那为什么要问这个问题?
我正在使用 DigitalOcean Ubuntu 16.04 服务器。我有一个由“npm start”运行的节点项目。
脚本是:
"scripts": {
"start": "node ./bin/www"
}
Run Code Online (Sandbox Code Playgroud)
一般pm2为
pm2 start app.js
Run Code Online (Sandbox Code Playgroud)
由于我的脚本是这样的,并且通过npm start如何永远运行我的服务器来运行。
你可以像这样运行内置的 npm 脚本:
pm2 start npm -- start
Run Code Online (Sandbox Code Playgroud)
如果您有自定义脚本,则可以像这样运行:
pm2 start npm -- run custom
Run Code Online (Sandbox Code Playgroud)
——
在您的情况下,pm2 start npm -- start将运行node ./bin/www. 如果要运行start,node app.js请将脚本更改为node app.js.
是的,您可以通过优雅地使用 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)
...还有轰隆隆!伙计们
| 归档时间: |
|
| 查看次数: |
9139 次 |
| 最近记录: |