新EC2实例中NestJS首次启动失败求助
解决EC2实例上NestJS启动失败及依赖安装异常问题
核心问题
本地项目的@nestjs/cli依赖未正确安装,导致全局CLI尝试加载本地命令模块失败;同时npm install --silent隐藏了安装过程中的隐性错误,未生成package-lock.json。
修复步骤
1. 彻底清理残留文件
先删掉可能损坏的依赖目录和缓存:
rm -rf node_modules rm -f package-lock.json yarn.lock npm cache clean --force
2. 重新安装依赖(关闭静默模式)
之前用--silent看不到错误,改用正常安装命令排查问题:
npm install
如果安装时出现编译类错误,先补全Ubuntu系统依赖:
sudo apt update && sudo apt install -y build-essential python3
3. 改用本地CLI启动项目
全局CLI和项目依赖的CLI版本可能不兼容,直接调用项目本地的CLI执行脚本:
修改package.json里的scripts字段:
"scripts": { "build": "npx nest build", "start": "npx nest start", "start:dev": "npx nest start --watch", "start:debug": "npx nest start --debug --watch", // 其余脚本保持不变 }
或者直接指定本地CLI路径:
"scripts": { "build": "./node_modules/.bin/nest build", "start": "./node_modules/.bin/nest start", "start:dev": "./node_modules/.bin/nest start --watch", "start:debug": "./node_modules/.bin/nest start --debug --watch", // 其余脚本保持不变 }
4. 验证修复效果
安装完成后检查关键文件:
# 确认@nestjs/cli的commands目录存在 ls node_modules/@nestjs/cli/commands # 确认package-lock.json已生成 ls -l package-lock.json
然后启动项目:
npm run start:dev
5. 修复全局CLI(可选)
如果需要使用全局CLI,卸载现有版本后安装和项目匹配的版本:
npm uninstall -g @nestjs/cli npm install -g @nestjs/cli@^10.0.0
验证全局CLI:
nest -v
额外提示
- EC2非root用户注意npm全局目录权限,避免安装时出现权限错误
- Node.js 20.x和NestJS 10.x兼容,若仍有问题可尝试降级到Node.js 18.x LTS版本
内容的提问来源于stack exchange,提问作者D555
相关产品推荐
相关产品推荐

