首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Vue2 scss 预编译器默认已由 node-sass 更换为 dart-sass,如果您的代码使用了 dart-sass 不支持的旧语法,可能存在部分不兼容的问题

Vue2 scss 预编译器默认已由 node-sass 更换为 dart-sass,如果您的代码使用了 dart-sass 不支持的旧语法,可能存在部分不兼容的问题

作者头像
fruge365
发布2025-12-15 12:49:12
发布2025-12-15 12:49:12
4390
举报
在这里插入图片描述
在这里插入图片描述

写移动端项目的时候 使用uView的示例项目,运行报错

参考文章:Vue2 scss 预编译器默认已由 node-sass 更换为 dart-sass,如果您的代码使用了 dart-sass 不支持的旧语法,可能存在部分不兼容的问题。

记录一下防止下次遇到。

在新版本HBuilder X打包时报错 原因:页面样式与布局 | uni-app官网

vue2开发者sass预处理注意:

sass的预处理器,早年使用node-sass,也就是vue2最初默认的编译器。

sass官方推出了dart-sass来替代。node-sass已经停维很久了。

vue3默认使用的是dart-sass。

另外node-sass不支持arm cpu,也即Apple的M系列CPU,导致HBuilderX的arm版只能使用dart-sass。

node-sass有些淘汰的写法,在dart-sass里已不再支持。

所以开发者在从vue2升vue3时,使用HBuilderX arm版时,会发现老的vue2项目如果写了废弃scss语法,会编译报错。

这种分裂也导致插件生态混乱,导致多人协作时,比如一个项目有人用arm专版,有人使用intel版,造成协作障碍。

DCloud推荐开发者尽快升级到vue3,改用dart-sass。

从 HBuilderX 4.56+ ,vue2 项目也将默认使用 dart-sass 预编译器。

如果您希望继续使用node-sass,可以在manifest.json根节点配置: “sassImplementationName”: “node-sass”; 可选值 “dart-sass” | “node-sass”。 sassImplementationName 配置仅限 uni-app(vue2)项目且非 HBuilderX Mac Arm 版本,HBuilder Mac Arm 版本以及uni-app vue3和uni-app x项目仅支持dart-sass。

node-sass升级dart-sass常见问题及改进方法:

解决方案:/deep/ 替换成::v-deep

WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

解决方案:使用 math.div() 替换除法运算符 详情,如果遇到@use ‘sass:math’;编译报错,可以在uni.scss中定义,详情

SassError: xxx and xxx are incompatible.

在这里插入图片描述
在这里插入图片描述

方案一: 添加"sassImplementationName" : “node-sass”,仅限vue2

方案二:升级为vue3使用dart-sass

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-12-09,如有侵权请联系 [email protected] 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 [email protected] 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • vue2开发者sass预处理注意:
  • node-sass升级dart-sass常见问题及改进方法:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档