Angular CLI从13升级至14后,除ng version外所有ng命令无响应问题求助
你说的这个情况我之前也遇到过——升级Angular CLI到14之后,除了ng version能正常输出版本信息,ng serve、ng build这些核心命令完全没反应,连个错误提示都没有,确实挺头疼的。结合你的描述(之前项目正常,升级CLI后出问题),大概率是版本冲突、缓存残留或者依赖不兼容导致的,我给你列几个亲测有效的排查步骤:
1. 对齐全局与本地Angular CLI版本
很多时候全局CLI和项目本地CLI版本不一致会触发这种静默失败的问题,先确认两者版本是否统一:
- 查看全局版本:
ng version(你已经知道这个能正常运行) - 查看项目本地版本:在项目根目录执行
npx ng version
如果版本不一样,先把全局CLI更新到14.x版本:
npm uninstall -g @angular/cli npm install -g @angular/cli@14
然后彻底清理项目依赖并重新安装:
rm -rf node_modules package-lock.json npm install
2. 彻底清理Angular CLI缓存
升级CLI后旧的缓存文件很可能干扰命令执行,先试试用CLI自带的清理命令:
ng cache clean --all
如果这个命令也没反应,就手动删除缓存目录:
- Windows:删除
%APPDATA%\npm-cache和%LOCALAPPDATA%\angular\cache - macOS/Linux:删除
~/.npm和~/.angular/cache
3. 校验tsconfig.json配置兼容性
你提到已经修改过tsconfig,但Angular 14对TypeScript配置有一些更新,比如target推荐设置为ES2020,strict模式的默认规则也有变化。建议先备份当前的tsconfig.json,然后用CLI生成默认配置对比:
npx ng generate config tsconfig
把新生成的配置和你原有配置对比,重点检查compilerOptions里的target、module、strict相关选项,逐步调整差异部分。
4. 确认Node.js版本符合要求
Angular 14要求Node.js版本为14.15.x、16.x或更高的LTS版本(不支持13和15),运行node -v确认你的版本,如果不符合,升级到兼容的LTS版本后再重新安装项目依赖。
5. 用空项目验证CLI是否正常
如果上面的步骤都没解决问题,建议创建一个全新的Angular 14项目测试:
ng new test-cli-14 cd test-cli-14 ng serve
如果新项目能正常启动,说明问题出在你原有项目的依赖或配置上,可以尝试逐步迁移代码到新项目,或者排查项目中的第三方依赖是否存在Angular 14不兼容的情况。
内容的提问来源于stack exchange,提问作者Maksym Kashchuk

