How Can I run PM2 with Angular-Cli? - Angular2

前端 未结 7 769
夕颜
夕颜 2020-12-30 07:33

How can I run: ng serve --prod with pm2?

ng serve from angular-cli, Angular2. I\'m running on DigitalOcean.

I have tried to test with ht

相关标签:
7条回答
  • 2020-12-30 07:42

    ng is a node module after all.

    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 讨论(0)
  • 2020-12-30 07:44

    But, if you need ng serve for dev in preprod env, you can create a start.sh at root of your project

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

    And use pm2 like that :

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

    ;)

    0 讨论(0)
  • 2020-12-30 07:45

    If you just want to serve static files, a new command has landed in pm2:

    $ pm2 expose [path] [port]

    0 讨论(0)
  • 2020-12-30 07:46

    This worked for me. The key difference here between this answer and the other answers is that I had to use the cwd option since I was running pm2 from a root directory:

    // 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'
        }
      }
    }
    
    0 讨论(0)
  • 2020-12-30 07:52

    The following, for example, worked for me from the angular project: pm2 start "ng serve --host 0.0.0.0"

    0 讨论(0)
  • 2020-12-30 07:54

    This command would work as expected:

    after I run

    ng build --prod

    then run the following command in the dist/ folder

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

    Update

    I have found a better solution: which ng then it will print /usr/bin/ng then type this

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

    0 讨论(0)
提交回复
热议问题