Angular 5.2升级至12相关咨询:配置文件与依赖兼容问题
Angular 5.2 升级到 12.x 常见问题解答
问题1:除重命名angular-cli.json为angular.json外,是否需要修改文件内部内容?
是的,必须修改内部结构。Angular CLI从版本6开始彻底重构了配置文件结构,和Angular 5使用的旧版angular-cli.json差异极大:
- 旧版的
apps数组被替换为projects对象,每个项目的配置被独立封装 - 原有的
build、serve、test等直接配置项,被整合到architect字段下 - 新增
defaultProject字段指定默认启动的项目 - 路径配置、环境变量配置的结构也完全调整
手动修改容易出错,建议直接运行Angular CLI的自动迁移命令:
ng update @angular/cli
该命令会自动完成配置文件的转换、结构调整,还会处理其他CLI相关的迁移细节。
问题2:如何确认依赖包适配Angular 12的版本?
通用查询方法
- 查看包的官方文档/CHANGELOG:大部分主流包会在文档里明确标注兼容的Angular版本,或在更新日志里说明适配的框架版本
- npm版本查询:用命令查看包的所有可用版本,结合版本号规律判断(很多和Angular绑定的库会采用和Angular一致的主版本号):
npm show <package-name> versions - 检查Angular官方兼容清单:Angular官网会列出常用第三方库的兼容版本参考
针对你列出的依赖包的具体说明
- bootstrap:纯CSS/JS库,无Angular版本绑定,3.x/4.x/5.x版本均兼容,注意和项目中
jquery的版本匹配即可 - chart.js:核心库无Angular依赖,3.x及以上稳定版都兼容;如果用
ng2-charts这类集成包,需选适配Angular 12的版本 - concurrently:并行命令工具,和Angular版本无关,只要支持当前Node版本(Angular 12要求Node 12.20+/14.15+/16.10+)即可
- copy-webpack-plugin:Angular 12用Webpack 5,需选6.x及以上版本(Webpack 5兼容版本)
- core-js:推荐用3.x版本,Angular 12不再默认支持已停止维护的core-js@2
- font-awesome:纯图标库,5.x/6.x版本均兼容,无框架版本限制
- fullcalendar:需用
@fullcalendar/angular的5.x版本(对应Angular 12),核心库同步用5.x版本即可 - jquery:3.x稳定版完全兼容,注意和bootstrap版本匹配
- json-server:独立模拟API工具,和Angular版本无关,支持当前Node版本即可
- moment:纯日期处理库,任意稳定版均兼容Angular 12
- node-sass:⚠️ Angular 12不再推荐使用(已停止维护,且和高版本Node兼容性差),建议替换为
sass(dart-sass)包 - primeng:需选12.x版本,该库版本和Angular版本严格对齐(Angular 12对应primeng 12)
- quill:如果用
ngx-quill(Angular集成包),需选适配Angular 12的版本(比如13.x系列);quill核心库无框架依赖,稳定版即可 - rxjs:Angular 12要求rxjs@6.6.0及以上,推荐用6.6.x-6.7.x版本;rxjs 7.x也可兼容,但需注意部分操作符的变化
- zone.js:需用0.11.x及以上版本,Angular 12对该版本有明确依赖要求
- ssri:npm内部依赖工具,和Angular版本无关,支持当前Node版本即可
内容的提问来源于stack exchange,提问作者Ajith
相关产品推荐
相关产品推荐

