<style lang="scss" scoped>
@use 'sass:math';
$cell-spacing: 20rpx;
.content {
padding: math.div($cell-spacing, 2);
}
</style>

- 发布:2025-03-13 11:32
- 更新:2025-04-10 10:09
- 阅读:3173
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10 10.0.19045
HBuilderX类型: 正式
HBuilderX版本号: 4.56
浏览器平台: Chrome
浏览器版本: 134
项目创建方式: HBuilderX
示例代码:
操作步骤:
运行H5和小程序调试均报错
运行H5和小程序调试均报错
预期结果:
运行H5和小程序调试均报错
运行H5和小程序调试均报错
实际结果:
运行H5和小程序调试均报错
运行H5和小程序调试均报错
bug描述:
vue2在vue文件的style标签里使用 @use 'sass:math'; 会报错,vue3可以正常使用
11:13:51.684 Module build failed (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js):
11:13:51.684 SassError: @use rules must be written before any other rules.
11:13:51.684 ╷
11:13:51.684 74 │ @use 'sass:math';
11:13:51.684 │ ^^^^^^^^^^^^^^^^
11:13:51.684 ╵
11:13:51.684 *******\pages\index\index.vue 74:1 root stylesheet
最佳回复

现在在 vue 页面内使用 @use ‘sass:math’ 确实有些问题,后续会排查修复,暂时绕过方案,你可以在项目根目录下的 uni.scss
中声明全局变量使用:
// uni.scss
@use 'sass:math';
$cell-spacing: 20rpx;
$padding: math.div($cell-spacing, 2);
页面内:
// index.vue
<style lang="scss" scoped>
.content {
padding: $padding;
}
</style>

vue2项目,@use 'sass:math'; 放在哪都不行(包括uni.scss)
-
-
回复 DCloud_UNI_HT:
// uni.scss
@use 'sass:math';
// index.vue
$cell-spacing: 20rpx;
$padding: math.div($cell-spacing, 2);
早上试了一下似乎也会报,时间原因没有深入,4.56版本2025-03-14 17:47
-
-
-
-
-
-
-
-

Uncaught Error: Module build failed (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js):
SassError: There is no module with the namespace "math".
我的是报这个错误

vue3 也有相同的问题
环境:
目前 sass 升级到1.86.0; "@dcloudio/uni-app": "3.0.0-alpha-4050720250320001",
问题描述:
-
原有使用@import 的语法,会出现
Deprecation Warning [import]: Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0. -
自定义使用@use 语法均会出现
SassError: @use rules must be written before any other rules.
分析原因:
uniapp 优先将 uni.scss 以@import 的方式引用每个 vue 文件的<script>
解决方案:
建议官方,将默认的导入方式由@import改为@use uni.scss as *;
关联问题:https://ask.dcloud.net.cn/question/207629

1888 - 1888
4.57
vue2 manifest.json已配置"sassImplementationName" : "node-sass"
在App.vue中引入全局公共样式文件#import url("./xxx/common.css")时,自定义组件<style lang="scss" scoped>,发现app端和微信小程序表现不一致
例如common.css中列明.flex{display:flex},在自定义组件A的元素中赋类class=“flex",微信小程序生效,APP端没有生效。
未更新前是各端表现一致的,不知道各位有没有遇到相同问题?
-
-
回复 DCloud_UNI_FengXY: 更正一下,https://ask.dcloud.net.cn/question/207891?column=log&rf=false
2025-04-10 16:01
1***@qq.com
升到4.76了还是有问题,怎么回事啊
2025-08-23 14:52