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

stylelint校验sass文件报block_end类CssSyntaxError错误

报错原因

执行npx stylelint "**/*.sass"抛出Cannot set properties of undefined (setting 'block_end') CssSyntaxError有两个核心诱因:

  1. 解析器不匹配:stylelint 默认使用的内置解析器仅支持标准CSS、大括号语法的SCSS,无法识别缩进语法的.sass文件,解析阶段直接崩溃抛出错误。
  2. 代码缩进不符合Sass语法规则:你的代码中.settingsPage下嵌套的.tabsNav缩进层级错误,比同层级的样式属性多缩进了2个空格,会被解析器识别为无效嵌套结构,触发解析失败。
修复步骤
  • 安装缩进式Sass专属解析器
    执行以下命令安装适配.sass语法的PostCSS解析器,供stylelint调用:
    npm install --save-dev postcss-sass
  • 调整stylelint配置
    在项目根目录的stylelint配置文件(.stylelintrc.json/.stylelintrc.js等)中,为.sass文件指定专属解析器,同时配置统一缩进规则。如果项目同时存在.scss和.sass文件,推荐用覆写配置避免全局解析器冲突,示例如下:
    {
      "extends": ["stylelint-config-standard-scss"],
      "rules": {
        "indentation": 2
      },
      "overrides": [
        {
          "files": ["**/*.sass"],
          "customSyntax": "postcss-sass"
        }
      ]
    }
    
    如果项目全是.sass文件,可以直接把"customSyntax": "postcss-sass"提至配置根层级,不用写overrides配置。
  • 修正代码缩进错误
    将.tabsNav的缩进调整为和.settingsPage下的样式属性同级(2空格缩进),.tabsNav下的padding-top属性保持相对父选择器2空格缩进,修正后对应代码段如下:
    .settingsPage
      align-content: center
      background: #f7f9fc
      display: flex
      flex-direction: column
      height: 100vh
      margin: 0 auto
    
      .tabsNav
        padding-top: 0
    
    其余选择器下属性缩进不一致的问题(比如.title下属性用了4空格缩进、和.headerSection的2空格规则冲突),等解析器正常工作后,stylelint会逐行提示,按规则调整即可。
  • 重新执行校验
    再次运行npx stylelint "**/*.sass"即可正常完成校验,不会再出现block_end相关的阻塞性语法报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:33:16