我有这样的文件结构:
---- _base-map.scss
---- _child-map-1.scss
---- _child-map-2.scss
---- _child-map-3.scss
styles.scss
style.scss 导入所有子 map 文件:
@import './base-map';
@import './child-map-1';
@import './child-map-2';
@import './child-map-3';
到现在为止还挺好。
_base-map.scss :
$base-map : (
"font-size" : 1.3rem,
"border-radius" : 0.4rem,
// ...
);
为了使用“map.merge”,必须包含@use“sass:map”:
_child-map-1.scss :
@use "sass:map";
$child-map-1 : map.merge(
$base-map,
(
"font-size" : 2rem,
"border-radius" : 0.5rem,
// ...
)
);
但是,当我尝试将文件与 scss-bundle 捆绑在一起时,出现此错误:
[17:22:37] erro: There is an error in your styles:
[17:22:37] erro: @use rules must be written before any other rules.
[17:22:37] erro: ╷
[17:22:37] erro: 838 │ @use "sass:map";
[17:22:37] erro: │ ^^^^^^^^^^^^^^^
[17:22:37] erro: ╵
[17:22:37] erro: stdin 838:1 root stylesheet on line (838, 1)
当我不包含 @use "sass:map"时,scss 编译器会提示 map.merge。
解决这个问题的正确方法是什么?
最佳答案
我不得不将“map.merge”更改为“map-merge”以使其工作。
感谢@Arkellys。
HTH某人。
关于sass - scss 捆绑错误 : @use rules must be written before any other rules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60833313/