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

时间:2016-09-04 07:40:53

标签: nginx angular digital-ocean pm2

我该怎么办: pm ng serve --prod

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

我尝试在http-server -p 4200 -d false

之后使用dist /文件夹中的ng build --prod进行测试

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

enter image description here

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

my_app_process.json

{
    "apps": [
        {
            "name": "angular",
            "cwd": "~/angular2",
            "args": "-p 4200 -d false",
            "script": "/usr/bin/http-server"
        }
    ]
}

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

7 个答案:

答案 0 :(得分:20)

此命令将按预期工作:

我跑完后

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

答案 1 :(得分:11)

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

#!/bin/bash
ng serve --host xxx.xxx.xxx.xxx --port xxxx

并像这样使用pm2:

pm2 start start.sh --name my-pretty-dev-app-run-on-preprod

答案 2 :(得分:1)

使用PM2最新版本

pm2 ecosystem

比更新

  

ecosystem.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 : {
  }
};

最终

  

pm2开始&pm2保存

答案 3 :(得分:0)

ng毕竟是一个节点模块。

apps:
- name: ngserve
  script: 'node_modules/@angular/cli/bin/ng'
  args: 'serve --progress=false --live-reload=false --disable-host-check=true'
  watch: false
  log_date_format: YYYY-MM-DD HH:mm
  merge_logs: true
  out_file: "/dev/null"
  error_file: "/dev/null"

答案 4 :(得分:0)

例如,以下项目在我的角度项目中为我工作: pm2 start "ng serve --host 0.0.0.0"

答案 5 :(得分:0)

这对我有用。此答案与其他答案之间的主要区别在于,因为我是从根目录运行pm2的,所以我不得不使用cwd选项:

// pm2 start
// https://pm2.io/doc/en/runtime/guide/ecosystem-file
// https://pm2.io/doc/en/runtime/reference/ecosystem-file

module.exports = {
  apps: [{
    name: 'fe',
    script: 'node_modules/@angular/cli/bin/ng',
    args: 'serve -o',
    cwd: 'biblical-hebrew-fe',
    max_restarts: 5,
    min_uptime: 3000,
    exec_mode: 'fork',
    instances: 1, // default
    autorestart: true, // default
    watch: false, // default
    max_memory_restart: '1G', // default
    env: {
      NODE_ENV: 'development'
    },
    env_production: {
      NODE_ENV: 'production'
    }
  }],

  deploy: {
    production: {
      user: 'node',
      host: '212.83.163.1',
      ref: 'origin/master',
      repo: 'git@github.com:repo.git',
      path: '/var/www/production',
      'post-deploy': 'npm install && pm2 reload ecosystem.config.js --env production'
    }
  }
}

答案 6 :(得分:-2)

如果您只想提供静态文件,则新命令已登陆pm2:

$ pm2揭露[路径] [端口]