Angular项目ng serve/ng build编译报错:SassError: expected "}"
解决Angular编译报错:SassError: expected "}"
- 这个错误本质是Sass代码存在未闭合的括号,跟Node/Angular版本、sass/node-sass切换关系不大,别在环境上死磕,先从代码入手。
- 定位具体错误位置:仔细看完整报错日志,通常会附带出错的文件路径和行号(比如
src/app/components/header/header.component.scss:23:3),直接去对应位置检查:- 嵌套的CSS选择器有没有漏写闭合的
} - @mixin、@function的代码块是不是没收尾
- @if/@else这类条件语句的括号是否匹配
- 用编辑器的括号高亮功能(比如VS Code默认自带)能快速定位未闭合的括号
- 嵌套的CSS选择器有没有漏写闭合的
- 排查所有Sass文件:别只看单个组件的样式,全局样式文件(styles.scss)、通过@import/@use引入的外部Sass资源(变量文件、mixin库)都可能出问题,逐个排查引入的依赖文件
- 清理缓存再试:有时候缓存会残留错误,执行以下命令后重新编译:
ng cache clean rm -rf node_modules/.cache ng build --no-cache - 检查动态生成的Sass代码:如果项目里有脚本自动生成.scss文件的逻辑,确认生成的代码语法合规,括号完整
内容的提问来源于stack exchange,提问作者Mercury77
相关产品推荐
相关产品推荐

