在罗盘或旧版本中,对于像这样的每个文件,它可以@import
一次
_mixin.sass
=test_mixin()
color: #AAFFCB
screen.scss
@import "include/_mixin";
@import "print.scss";
header{ @include test_mixin; }
print.scss
header{ @include test_mixin; }
输出screen.css
header {
color: #aaffcb;
}
header {
color: #aaffcb;
}
输出print.css
header {
color: #aaffcb;
}
它应该没有任何错误,但在新版本中有错误
error sass/print.scss (Line 5: Undefined mixin 'test_mixin'.)
我知道添加@import "_mixin.scss"
到print.scss解决这个问题,但我认为如果将来我想要查找_mixin.scss
文件名,如果我有很多文件包括_mixin.scss
我觉得它太累了T ^ T
我怎么能解决这个问题?
谢谢:)
答案 0 :(得分:0)
我在这里看不到任何大问题。由于print.scss
是单独的CSS文件(它在开头没有下划线),因此它不知道什么是test_mixin
函数。您应该在开头使用与screen.scss
文件相同的内容:
@import "include/_mixin";
我也不明白为什么要在print.scss
文件中导入screen.scss
文件。对我而言,它没有任何意义。
您当然可以创建一个_init文件并将其导入每个完整的scss文件(非部分),例如:
@import "base/_init";
在此_init.scss
文件中,您可以添加导入规则。这样,即使您更改了文件名,也可以在_init.scss
文件中更改一次。
答案 1 :(得分:0)
以下是一些基础知识:
那些你不希望被生成为独立CSS文件的SCSS文件,你在开头用一个下划线命名,例如: _mixin.scss
,它将是您的部分。
您想要拥有的文件作为单独的CSS 文件,您可以像往常一样使用下划线,例如screen.scss
。
然后,如果您想在screen.scss
中使用偏见,则执行@import
:
@import "path_to_your_partials/mixin"
(注意,导入时不需要下划线) 然后,只有这样你才能使用它中的一些mixin:
@include colorize;
在独立的CSS文件中只包含部分(带有_的文件),而不是要作为CSS生成的文件,因此在screen.scss
的示例中,@import "print.scss";
过多。< / p>
但等等,它变得更好!
包含在同一文件中的部分可以互相访问,因此您不会在部分中执行任何其他@import
。
继续上面的示例,如果您有另一个文件_colors.scss
,则可以在$red
中使用变量_mixin.scss
,如果您在screen.scss
中声明导入它按正确的顺序:
@import "path_to_your_partials/colors" // has a mixin colorize
@import "path_to_your_partials/mixin" // has a variable $red
@import "path_to_your_partials/header"
在您的部分_header.scss
中,您可以同时使用_mixins.scss
中的mixin和_colors.scss
中的变量:
@include colorize($red);
这样,当您更改部分文件名时,只能更改独立.scss文件中的名称,而不能更正所有部分文件中的名称。