You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Angular-CLI应用配置PM2?含配置文件示例验证

如何通过PM2配置文件运行Angular-CLI应用?

当然可以用PM2配置文件来管理你的Angular-CLI应用!这种方式不仅能帮你省去每次敲长命令的麻烦,还能统一管控应用的日志、实例数、环境变量等各种参数,非常实用。

你的配置文件优化说明

你提供的pm2.json配置是可行的,我帮你梳理下关键字段的作用,顺便提几个小建议让配置更规范:

{
  "apps": [{
    "name": "my-app",
    "script": "/usr/bin/ng", // 去掉前面的./,直接用绝对路径更稳妥
    "args": "serve", // 把serve作为单独的args参数,比写在script里更清晰,后续改参数也方便
    "instances": "1",
    "error_file": "./err.log", // 建议改成绝对路径,比如/var/log/my-app/err.log,避免路径混乱
    "out_file": "./out.log",
    "merge_logs": true,
    "log_date_format": "YYYY-MM-DD HH:mm Z",
    "env": {
      "NODE_ENV": "development"
    },
    "env_production": {
      "NODE_ENV": "production"
    }
  }]
}

关键字段解释

  • name: 给你的应用起个专属名字,后续用pm2 list、pm2 restart my-app这类命令时,能快速识别目标应用
  • script: 全局安装的ng命令的绝对路径,你已经验证过命令行能正常运行,所以这个路径没问题
  • args: 把serve指令单独放在这里,更符合PM2的配置规范,比如后续要改端口,直接加--port 4201到args里就行
  • error_file/out_file: 分别存放应用的错误日志和普通输出日志,用绝对路径能避免因PM2启动目录不同导致的日志找不到问题
  • env/env_production: 定义不同环境的环境变量,启动时可以通过参数快速切换

启动命令

  • 启动开发环境:
pm2 start pm2.json
  • 启动生产环境(注:ng serve不适合生产,仅作测试用):
pm2 start pm2.json --env production

重要提醒

💡 一定要注意:ng serve是开发环境专属的调试服务器,它的性能和稳定性都无法满足生产环境的需求。如果是部署正式的生产应用,正确的流程应该是:

  1. 先执行ng build --prod构建生产版本的静态文件(默认输出到项目根目录的dist/文件夹)
  2. 用PM2托管一个专门的静态文件服务器,比如http-server或者自定义的Express服务,示例配置如下:
{
  "apps": [{
    "name": "my-app-prod",
    "script": "./node_modules/.bin/http-server",
    "args": "dist/my-app -p 4200 -c-1", // -c-1禁用缓存,适合生产静态文件
    "instances": "max", // 根据CPU核心数自动启动实例,提升性能
    "error_file": "/var/log/my-app/prod-err.log",
    "out_file": "/var/log/my-app/prod-out.log",
    "merge_logs": true,
    "log_date_format": "YYYY-MM-DD HH:mm Z",
    "env": {
      "NODE_ENV": "production"
    }
  }]
}

内容的提问来源于stack exchange,提问作者Jebedo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:05:41