<style lang="scss" scoped>
@use '../../libs/css/components.scss';
</style>

- 发布:2025-04-02 16:05
- 更新:2025-04-17 21:53
- 阅读:118
产品分类: uniapp/H5
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 15.3.2 (24D81)
浏览器平台: Chrome
浏览器版本: Version 134.0.6998.166 (Official Build) (arm64)
项目创建方式: CLI
CLI版本号: 3.0.0-alpha-4050720250320001
示例代码:
操作步骤:
<style lang="scss" scoped>
@use '../../libs/css/components.scss';
</style>
<style lang="scss" scoped>
@use '../../libs/css/components.scss';
</style>
预期结果:
运行正常
运行正常
实际结果:
编译器报错
SassError: @use rules must be written before any other rules.
编译器报错
SassError: @use rules must be written before any other rules.
bug描述:
关联问题:https://ask.dcloud.net.cn/question/206689?item_id=295848&rf=false
环境:
目前 sass 升级到1.86.0; "@dcloudio/uni-app": "3.0.0-alpha-4050720250320001",
问题描述:
目前 sass 升级到1.86.0后,原有使用@import 的语法,会出现
Deprecation Warning [import]: Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0.
<style lang="scss" scoped>
@import '../../libs/css/components.scss';
</style>
根据sass 官方建议使用@use 语法
<style lang="scss" scoped>
@use '../../libs/css/components.scss';
</style>
运行后,均会出现
SassError: @use rules must be written before any other rules.
原因分析:
uniapp 优先将 uni.scss 以@import 的方式引用每个 vue 文件的<script>
修改建议:
建议官方,将默认的导入方式由@import改为@use uni.scss as *;

z***@foxmail.com (作者)
@DCloud_UNI_FengXY
附件是demo 工程
请使用 pnpm install ,pnpm-lock.yaml 已在项目中
运行正常和异常也在附件截图
DCloud_UNI_FengXY
是因为你的uni.scss中包含了css代码,uni.scss初衷主要是为了定义scss的变量相关,如果有全局css代码,应该放到App.vue中
2025-04-18 12:05
z***@foxmail.com (作者)
回复 DCloud_UNI_FengXY: 感谢 问题已解决
2025-04-21 16:52