Angular升级v13、Bootstrap5.2后编译慢报选择器错误警告
问题原因
该警告由autoprefixer版本兼容问题导致:你在package.json中手动锁定了autoprefixer@10.4.5版本,这个版本存在已知的CSS选择器解析bug,无法正确处理Bootstrap 5.2内置样式中的legend + *选择器,触发类型读取错误后跳过对应规则。
这个bug还会导致Angular的构建缓存失效,每次执行保存触发增量编译时,都会重复全量解析所有样式文件,直接造成编译速度极慢、警告重复弹出的问题。
解决方法
按以下步骤操作即可修复:
- 删除
package.json中resolutions字段下对autoprefixer的强制版本锁定配置,即移除如下代码块:
"resolutions": { "autoprefixer": "10.4.5" }
- 清理本地已安装依赖和锁文件,在项目根目录执行对应命令:
# npm用户执行 rm -rf node_modules package-lock.json # yarn用户执行 rm -rf node_modules yarn.lock
- 重新安装依赖,让@angular-devkit/build-angular内置的兼容版autoprefixer自动安装:
# npm用户执行 npm install # yarn用户执行 yarn install
- 如果重新安装后问题仍存在,手动安装修复了该bug的autoprefixer版本即可:
# npm用户执行 npm install autoprefixer@10.4.7 --save-dev # yarn用户执行 yarn add autoprefixer@10.4.7 --dev
操作完成后重启本地开发服务,警告会完全消失,保存文件时的增量编译速度也会恢复正常。
内容的提问来源于stack exchange,提问作者Mohamed Ben Chamakh
相关产品推荐
相关产品推荐

