如何使用Angular-Cli运行PM2? - Angular2

Vic*_*nak 9 nginx digital-ocean pm2 angular

我该怎么ng serve --prod办: 用pm2?

ng来自angular-cli,Angular2.我正在使用DigitalOcean.

我试过http-server -p 4200 -d false在dist /文件夹中测试之后ng build --prod

当我从域https://www.unibookkh.com/请求时,我得到404错误:(我已经设置了nginx来监听端口4200.

在此输入图像描述

我用http-server测试,因为我想我可以通过这个命令pm2 start my_app_process.json在哪里运行pm2

my_app_process.json

{
    "apps": [
        {
            "name": "angular",
            "cwd": "~/angular2",
            "args": "-p 4200 -d false",
            "script": "/usr/bin/http-server"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

有关如何使用PM2的更好的想法?

Vic*_*nak 24

此命令将按预期工作:

我跑完之后

ng build --prod

然后在dist /文件夹中运行以下命令

pm2 start /usr/bin/http-server -- -p 8080 -d false

更新

我找到了一个更好的解决方案: which ng 然后它会打印/ usr/bin/ng然后键入它

pm2 start /usr/bin/ng -- serve --prod

  • 你也可以`pm2 start $(ng ng)` (4认同)

小智 14

但是,如果你需要在preprod env中为dev服务,你可以在项目的根目录下创建一个start.sh.

#!/bin/bash
ng serve --host xxx.xxx.xxx.xxx --port xxxx
Run Code Online (Sandbox Code Playgroud)

并使用像这样的pm2:

pm2 start start.sh --name my-pretty-dev-app-run-on-preprod
Run Code Online (Sandbox Code Playgroud)

;)


Bhe*_*har 5

用PM2最新版本

pm2 ecosystem
Run Code Online (Sandbox Code Playgroud)

比更新

生态系统.config.js如下

module.exports = {
  apps : [{
    name: 'demoapp',
    script: 'node_modules/@angular/cli/bin/ng',
    args: 'serve --host [yourip] --disable-host-check',
    instances: 1,
    autorestart: true,
    watch: false,
    max_memory_restart: '1G',
    env: {
      NODE_ENV: 'development'
    },
    env_production: {
      NODE_ENV: 'production'
    }
  }],

  deploy : {
  }
};
Run Code Online (Sandbox Code Playgroud)

最后

pm2 开始 & pm2 保存