Angular 19.0与pm2不兼容?启动无端口监听如何调试
调试Angular 19 + PM2启动问题的步骤
强制绑定Node版本启动
确保PM2使用的Node版本和你本地运行的一致(避免PM2内置Node版本差异),执行:pm2 start dist/server/server.mjs --interpreter node@20.9.0也可以先检查当前PM2使用的解释器版本:
pm2 info angular-server | grep interpreter显式指定日志输出路径
强制捕获标准输出和错误日志,避免默认日志路径权限或捕获问题:pm2 start dist/server/server.mjs --log ./pm2-out.log --error ./pm2-err.log启动后直接查看这两个文件,大概率能找到启动失败或无监听的原因。
启用PM2 verbose模式查看细节
用 verbose 模式启动,获取更详细的启动日志:pm2 start dist/server/server.mjs -v同时可以实时查看原始日志输出:
pm2 logs --raw使用PM2配置文件适配ES模块
Angular 19构建的server.mjs是ES模块,可能PM2需要显式配置支持,创建ecosystem.config.js:module.exports = { apps: [{ name: 'angular-server', script: 'dist/server/server.mjs', interpreter: 'node', env: { NODE_ENV: 'production' } }] };然后用配置文件启动:
pm2 start ecosystem.config.js检查进程状态与端口监听
用pm2 monit查看进程的CPU、内存占用情况,判断是否有异常;同时用以下命令检查Node进程的端口监听:lsof -i -P | grep node对比直接用
node启动的进程,确认PM2启动的进程是否真的未监听端口。更新PM2到最新版本
PM2 5.3.1可能对Angular 19的ES模块支持不足,更新到最新版测试:npm install -g pm2@latest
内容的提问来源于stack exchange,提问作者Lucas Tesseron
相关产品推荐
相关产品推荐

