Angular 16升级至17时出现angular-css-resource插件资源解析错误
Angular 16升级至17时字体资源解析错误的解决方案
升级Angular 16到17版本后,编译过程中出现以下资源解析错误:
[ERROR] 无法解析"open-sans/latin_700.woff2" [插件 angular-css-resource]
:581:11:
581 │ src: url("open-sans/latin_700.woff2") format("woff2");
╵ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
错误提示指出可将路径标记为外部资源以排除在打包范围外,以下是具体解决方法:
方法一:标记字体资源为外部资源
修改项目根目录下的angular.json文件,在对应项目的build配置中添加外部资源规则:
- 找到
projects -> [你的项目名] -> architect -> build -> options - 添加
externalResources配置项:
"externalResources": [ "open-sans/**" ]
此配置会让Angular打包时跳过对open-sans路径下资源的解析,保留原路径在最终包中,消除编译错误。
方法二:确保字体资源正确引入
检查字体文件的实际存放路径:
- 确认
node_modules/open-sans/目录下存在latin_700.woff2文件 - 如果CSS中的路径与实际文件位置不匹配,调整
url路径,例如:
src: url("../node_modules/open-sans/latin_700.woff2") format("woff2");
(路径需根据CSS文件所在目录层级调整)
方法三:切换Ivy全编译模式(可选)
若部分编译模式引发问题,可尝试启用全编译模式:
在angular.json的build -> options中设置:
"aot": true, "fullTemplateTypeCheck": true
内容的提问来源于stack exchange,提问作者Vicky
相关产品推荐
相关产品推荐

