uni-app vue2 改为 dart-sass后 无法使用 uni.scss 里的变量了

uni-app vue2 改为 dart-sass后 无法使用 uni.scss 里的变量了

开发环境 版本号 项目创建方式
Mac 12.7.6 HBuilderX

示例代码:

.p { color: $_color; }

操作步骤:

.p { color: $_color; }

预期结果:

.p { color: $_color; }

实际结果:

14:22:04.596 Vue2 scss 预编译器默认已由 node-sass 更换为 dart-sass,如果您的代码使用了 dart-sass 不支持的旧语法,可能存在部分不兼容的问题。 14:22:04.596 解决方案: 14:22:04.597 方案1:调整为 dart-sass 支持的语法,详情:https://uniapp.dcloud.net.cn/tutorial/syntax-css.html#css-preprocessor 14:22:04.597 方案2:如果您希望继续使用node-sass,您可以在 manifest.json 中配置 “sassImplementationName”: “node-sass”,详情:https://uniapp.dcloud.net.cn/tutorial/syntax-css.html#css-preprocessor 14:22:04.597 14:22:04.597 Module build failed (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js): 14:22:04.597 SassError: Undefined variable. 14:22:04.597 ╷ 14:22:04.597 97 │ margin-top: $_card_margin;

bug描述:

uniapp vue2 改为 dart-sass后, 无法使用 uni.scss 里的变量了;以下是错误信息(多条):

14:22:04.596 Vue2 scss 预编译器默认已由 node-sass 更换为 dart-sass,如果您的代码使用了 dart-sass 不支持的旧语法,可能存在部分不兼容的问题。 14:22:04.596 解决方案: 14:22:04.597 方案1:调整为 dart-sass 支持的语法,详情:https://uniapp.dcloud.net.cn/tutorial/syntax-css.html#css-preprocessor 14:22:04.597 方案2:如果您希望继续使用node-sass,您可以在 manifest.json 中配置 “sassImplementationName”: “node-sass”,详情:https://uniapp.dcloud.net.cn/tutorial/syntax-css.html#css-preprocessor 14:22:04.597 14:22:04.597 Module build failed (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js): 14:22:04.597 SassError: Undefined variable. 14:22:04.597 ╷ 14:22:04.597 97 │ margin-top: $_card_margin;


更多关于uni-app vue2 改为 dart-sass后 无法使用 uni.scss 里的变量了的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

检查一下你的项目中是不是用了什么不支持的旧语法

更多关于uni-app vue2 改为 dart-sass后 无法使用 uni.scss 里的变量了的实战教程也可以访问 https://www.itying.com/category-93-b0.html


解决了吗?我也遇到了无法使用 uni.scss 里的变量

这是因为uni-app从node-sass切换到dart-sass后,两者在变量作用域处理上存在差异导致的。

dart-sass要求变量必须在当前文件作用域内定义或通过@import导入才能使用。检查你的uni.scss文件是否正确定义了$_color变量,并在使用该变量的组件中通过@import导入uni.scss:

[@import](/user/import) '@/uni.scss';
.p { color: $_color; }
回到顶部