如何在AWS EC2的NX工作区中通过PM2部署NestJs应用?
解决NX工作区NestJS应用PM2部署问题
首先先通过PM2日志定位具体错误:
pm2 logs Backend API
推荐生产部署方式(构建为JS后运行)
NX项目生产环境建议先构建成JavaScript产物,再用PM2启动,步骤如下:
- 在EC2实例的项目根目录执行构建命令:
nx build api --prod
构建完成后,产物会生成在dist/apps/api目录下。
- 修改
pm2.config.js配置:
// pm2.config.js module.exports = { apps: [ { name: 'Backend API', script: './dist/apps/api/main.js', // 指向构建后的主文件 cwd: './', // 项目根目录 env: { PORT: 3000, NODE_ENV: 'production', }, }, ], };
- 启动PM2服务:
pm2 start pm2.config.js
- 验证运行状态:
pm2 status
开发环境临时方案(直接用TS运行)
如果需要在开发环境直接运行TS代码(不推荐生产),修改配置如下:
// pm2.config.js module.exports = { apps: [ { name: 'Backend API', script: './apps/api/src/main.ts', // 直接指向TS入口文件 interpreter: 'ts-node', cwd: './', // 项目根目录 env: { PORT: 3000, NODE_ENV: 'production', }, }, ], };
注意:需确保已安装依赖:
npm install ts-node typescript -D
额外检查项
- 确认EC2安全组已开放3000端口的入站访问规则
- 如果项目使用
.env文件,需确保文件存在且路径正确,可在script中添加--require dotenv/config来加载环境变量
内容的提问来源于stack exchange,提问作者Bhanuka Krish
相关产品推荐
相关产品推荐

