使用godartsass/v2编译缩进式Sass时始终报unexpected EOF错误
解决
github.com/bep/godartsass/v2编译缩进式Sass时的unexpected EOF错误 核心问题:参数传错导致解析异常
你的代码直接将文件路径传给了Args.Source字段,但该字段的作用是传入Sass代码字符串,而非文件路径。dart-sass会把路径字符串当作Sass代码解析,因此必然抛出unexpected EOF错误。
修复方案
1. 使用SourcePath指定文件路径
将Source替换为SourcePath,让库直接读取目标文件内容:
_, err = sassTranspiler.Execute(godartsass.Args{ SourcePath: path, // 替换原Source字段为SourcePath OutputStyle: godartsass.OutputStyleCompressed, SourceSyntax: godartsass.SourceSyntaxSASS, EnableSourceMap: true, })
2. 手动读取文件内容传入Source(可选)
如果需要先预处理文件内容再编译,可手动读取文件后传入Source:
sassContent, err := os.ReadFile(path) if err != nil { return err } _, err = sassTranspiler.Execute(godartsass.Args{ Source: string(sassContent), OutputStyle: godartsass.OutputStyleCompressed, SourceSyntax: godartsass.SourceSyntaxSASS, EnableSourceMap: true, SourcePath: path, // 可选:指定源文件路径用于生成sourcemap })
3. 补充:检查Transpiler初始化配置
若系统未全局安装dart-sass,初始化时需指定二进制文件路径:
sassTranspiler, err = godartsass.Start(godartsass.Options{ DartSassPath: "path/to/dart-sass", // 替换为实际的dart-sass二进制文件路径 })
验证要点
- 修复参数后,确认
.sass文件的缩进式语法无明显错误 - 确保
filepath.Walk能正确遍历到目标.sass文件
内容的提问来源于stack exchange,提问作者Ryan Prentiss
相关产品推荐
相关产品推荐

