为什么Sass编译器编译.sass文件时返回root stylesheet错误
报错原因
你使用了.sass作为文件后缀,该后缀对应Sass的缩进式原生语法,这种语法不支持大括号、分号写法,完全依赖换行和缩进来区分选择器与样式规则、控制层级关系。你写的h1 {}中的{不符合缩进式Sass的语法要求,编译器遇到该字符时期望此处是换行符,所以抛出了对应的错误。
Sass的两种语法差异
Sass官方提供了两套语法规范,适用场景完全不同:
.sass后缀对应缩进语法:无大括号、无分号,适合习惯极简缩进写法的开发者,样例写法如下:
h1 font-size: 24px color: #333
.scss后缀对应类CSS语法:是原生CSS的超集,完全兼容所有合法的CSS写法,同时支持嵌套、变量、混合宏等Sass扩展特性,所有原生CSS代码可以直接放到.scss文件中正常编译。
适配你需求的方案
你不需要强制自己改用纯Sass写法,直接把文件后缀从.sass改为.scss即可,完全满足你「有时写原生CSS、有时用Sass语法」的使用需求。如果坚持使用.sass后缀,就必须把所有CSS代码里的大括号、分号都删除,调整为缩进式结构,对原生CSS的兼容度极低,不推荐这种方案。
你之前的判断是正确的,所有CSS文件都是合法的SCSS文件,SCSS的设计本身就是为了兼容原生CSS的使用习惯,完全匹配你的使用场景。
内容的提问来源于stack exchange,提问作者activedecay
相关产品推荐
相关产品推荐

