【发布时间】:2018-02-24 12:38:29
【问题描述】:
问题
关于覆盖!default 变量——我有两个.sass 文件:
main.sass
$variable: black
@import "_another_import.sass"
@import "_import.sass"
_import.sass
$variable: blue !default
body
background: $variable
$variable 在编译后的 CSS 中解析为 blue:
body {
background: blue;
}
但是,如果我在导入 _import.sass 样式表之前指定覆盖变量值,Sass 会将其编译为 black:
main.sass
@import "_another_import.sass"
$variable: black
@import "_import.sass"
问题
这种行为是有意的吗?有没有办法在导入中声明 !default 值之前(甚至在单独的文件中)声明 !default 变量值的覆盖?
实际设置(供参考)
我的实际设置比这要复杂一些。我正在使用Myg(NPM 组件)和myg-rails(生成文件结构以自定义变量)和 Webpack。所以我有一个myg.sass 文件加载_variables.sass 和_myg.sass。 _variables.sass 加载了几个定义变量的其他文件。 _myg.sass 导入 Myg (NPM) 组件。我验证了当我在 _variables.sass 中定义一个变量并使用它 + 在 Myg 组件中设置一个默认值时,默认值将覆盖已经设置的值。
【问题讨论】:
-
你想要背景蓝色还是黑色??
-
@Abhijeet
black -
你使用的是什么 sass 编译器?
-
@miir 我正在使用 Sass 和 webpack 使用 sass-loader。
-
你能分享你真实的
main.sass你的webpack配置吗?
标签: variables import sass default