uni-app 升级 cli 2.0.0-31920210709003 运行报错 Syntax Error SassError expected selector

uni-app 升级 cli 2.0.0-31920210709003 运行报错 Syntax Error SassError expected selector

项目属性 信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win11
手机系统 Android
手机系统版本号 Android 11
页面类型 vue
打包方式 云端
项目创建方式 CLI
CLI版本号 ^2.0.0-31920210709003

bug描述:

  • 跟什么渠道发行方式没关系,全端运行报错。
  • Syntax Error: SassError: expected selector. ╷ 94 │ /deep/ .rich-text{ │ ^ ╵ src\pages\member\balance\detail.vue 94:1 root stylesheet
  • 深度选择器替换为 ::v-deep 时不报错。
  • hx 最新版不报错。

操作步骤:

预期结果:

实际结果:


更多关于uni-app 升级 cli 2.0.0-31920210709003 运行报错 Syntax Error SassError expected selector的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

我也遇到了

更多关于uni-app 升级 cli 2.0.0-31920210709003 运行报错 Syntax Error SassError expected selector的实战教程也可以访问 https://www.itying.com/category-93-b0.html


最新版本的sass-loader的问题,全部替换成 ::v-deep 就可以了,这也是 vue 官方目前推荐的写法

回复 enderX: 好的,谢谢,看你的帖子已经改了

这个错误是由于Sass/SCSS语法规范变更导致的。在较新的Sass版本中,/deep/选择器已被废弃,不再被支持。

问题分析:

  1. CLI版本 2.0.0-31920210709003 更新了Sass编译器,对语法检查更加严格
  2. /deep/ 是Vue 2.x中样式穿透的旧写法,现已被 ::v-deep 替代
  3. HBuilderX最新版可能使用了不同的Sass编译器或兼容性配置

解决方案:

  1. 推荐方案:将所有 /deep/ 替换为 ::v-deep

    ::v-deep .rich-text {
      /* 样式规则 */
    }
    
  2. 临时方案:如果项目中有大量 /deep/ 需要逐步迁移,可以在 vue.config.js 中配置:

    module.exports = {
      css: {
        loaderOptions: {
          sass: {
            sassOptions: {
              // 禁用严格模式(不推荐长期使用)
              quietDeps: true
            }
          }
        }
      }
    }
回到顶部