我正在 1.24.x SCSS 中构建一种框架工具,但我无法弄清楚人们如何覆盖变量的默认值。这是一个松散的例子:
// framework/_variable.scss
$variable-1: red !default;
Run Code Online (Sandbox Code Playgroud)
// framework/_module.scss
@use "variable" as *;
@mixin mixin-one {
color: $variable-1;
}
Run Code Online (Sandbox Code Playgroud)
// framework/index.scss
@forward "module";
Run Code Online (Sandbox Code Playgroud)
// project.scss
@use "framework" as * with (
$variable-1: blue,
);
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误,因为$variable-1已经被导入framework/_module.scss并且不能被新导入覆盖。是否可以绕过这个问题,以便框架的用户可以用他们的项目自己的属性覆盖框架的变量?
小智 2
我知道这是一个老问题了,但对于仍然找到它的其他人来说,解决方案是在模块导入变量/配置文件之前转发清单中的变量/配置文件:
// framework/index.scss
@forward "variable";
@forward "module";
Run Code Online (Sandbox Code Playgroud)
这将允许用户在模块的其余部分导入默认值之前更改默认值。这些值将延续到后续进口中。
| 归档时间: |
|
| 查看次数: |
443 次 |
| 最近记录: |