You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

11ty项目Sass缩进语法报错及SCSS编译异常问题求助

解决方案:11ty中Sass编译及资源加载问题

问题1:缩进语法.sass文件编译报错"expected ;"

原因:sass.compileString()默认以SCSS语法解析文件,而你的.sass使用的是缩进语法,需显式指定语法类型。

修改.eleventy.js中的编译配置,在sass.compileString的选项中添加语法指定:

let result = sass.compileString(inputContent, {
  loadPaths: [parsed.dir || "."],
  sourceMap: false,
  syntax: sass.Syntax.Indented // 指定使用缩进语法解析
});

问题2:切换SCSS后无CSS文件生成 + MIME类型错误

子问题2.1:无CSS文件生成

你的.eleventy.js返回配置中,templateFormats未包含sass/scss,导致11ty不会处理这类文件。需将对应格式添加到列表中:

return {
    dir: {
        input: "src",
        includes: "_includes",
        output: "_site"
    },
    templateFormats: ["html", "md", "njk", "sass"], // 加入sass/scss格式
    htmlTemplateEngine: "njk",
    markdownTemplateEngine: "njk",
    dataTemplateEngine: "njk"
}

子问题2.2:MIME类型错误

该错误是因为请求main.js时返回了HTML(404页面),说明11ty未将src/assets/scripts下的文件复制到输出目录。添加静态资源复制配置:
在.eleventy.js的module.exports函数中加入:

// 复制scripts目录到输出目录
eleventyConfig.addPassthroughCopy("src/assets/scripts");
// 若需要统一复制所有静态资源,可替换为:
// eleventyConfig.addPassthroughCopy("src/assets");

额外注意事项

确认你安装的是官方维护的sass包而非已废弃的node-sass:

npm uninstall node-sass
npm install sass

修改完成后重启npm start,检查_site目录下是否生成了对应CSS文件,同时确认HTML中引用CSS/JS的路径与输出目录结构一致。

内容的提问来源于stack exchange,提问作者Pnemonic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 16:16:25