it-swarm.com.de

Wie kann ich PM2 mit Angular-Cli ausführen? - Angular2

Wie kann ich laufen: ng serve --prod mit pm2? 

ng dienen von angle-cli, Angular2. Ich arbeite mit DigitalOcean. 

Ich habe versucht, mit http-server -p 4200 -d false im Ordner dist/nach ng build --prod zu testen. 

Wenn ich von der Domäne https://www.unibookkh.com/ fordere, habe ich den Fehler 404 erhalten: (Ich habe Nginx bereits so eingestellt, dass er Port 4200 hört.

 enter image description here

Ich teste mit http-server, weil ich denke, dass ich pm2 über diesen Befehl pm2 start my_app_process.json wo ausführen kann 

mein_app_prozess.json  

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

Gibt es bessere Ideen, wie man es mit PM2 zum Laufen bringt? 

6
Vicheanak

Dieser Befehl würde wie erwartet funktionieren:

nachdem ich renne 

ng build --prod

führen Sie dann den folgenden Befehl im Ordner dist/aus

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

Aktualisieren

Ich habe eine bessere Lösung gefunden: which ng Dann wird /usr/bin/ng[.____.( gedruckt. Dann geben Sie dies ein

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

15
Vicheanak

Wenn Sie jedoch für dev in preprod env dienen müssen, können Sie im Stammverzeichnis Ihres Projekts eine start.sh erstellen

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

Und benutze pm2 so:

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

;)

11
Julien Moulin

Das hat bei mir funktioniert. Der Hauptunterschied zwischen dieser und den anderen Antworten besteht darin, dass ich die Option cwd verwenden musste, da ich pm2 in einem Stammverzeichnis ausgeführt habe:

// 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

Mit der letzten Version von PM2

pm2 ecosystem

als Update

ecosystem.config.js wie folgt

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

endlich 

pm2 start & pm2 speichern

0
Bheru Lal Lohar

ng ist immerhin ein Knotenmodul.

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

Folgendes hat zum Beispiel für mich aus dem angular project gearbeitet: pm2 start "ng serve --Host 0.0.0.0"

0
satish