web-dev-qa-db-ja.com

Angular-CliでPM2を実行するにはどうすればよいですか? -Angular2

Pm2で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

私は多分このコマンドpm2 start my_app_process.jsonでpm2を実行できると思うので、http-serverでテストします

my_app_process.json

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

PM2で動作させるためのより良いアイデアはありますか?

9
Vicheanak

このコマンドは期待どおりに機能します。

私が走った後

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

24
Vicheanak

ただし、開発環境のpreprod envでng serveが必要な場合は、プロジェクトのルートに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

;)

14
Julien Moulin

PM2の最新バージョン

pm2 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保存

2
Bheru Lal Lohar

これでうまくいきました。この回答と他の回答の主な違いは、ルートディレクトリから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: '[email protected]:repo.git',
      path: '/var/www/production',
      'post-deploy': 'npm install && pm2 reload ecosystem.config.js --env production'
    }
  }
}
0
danday74

結局のところ、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"
0
Hexadecy

たとえば、angular project:pm2 start "ng serve --Host 0.0.0.0"

0
satish