Sass @import使用前导下划线

Tim*_*dly 24 sass partials

我知道最好在不使用前导下划线的情况下导入SASS/SCSS部分; 例如

__CODE__

我对书呆子完整性的问题是,如果文件是使用下划线导入的,是否存在问题?

__CODE__

cim*_*non 20

不.如果您的文件是_foo.scss,只要您没有任何不明确的文件名(除非可能存在任何副作用),所有这些导入都会有相同的结果:

@import "foo";
@import "foo.scss";
@import "_foo";
@import "_foo.scss";
Run Code Online (Sandbox Code Playgroud)

具有相同名称但扩展名不同的文件

只有在同一搜索路径中同时包含_foo.scss和_foo.sass时,才需要进行扩展.如果您没有指定哪一个,您将收到以下错误:

    error sass/test.scss (Line 7: It's not clear which file to import for '@import "test/bar"'.
Candidates:
  test/_bar.sass
  test/_bar.scss
Please delete or rename all but one of these files.
)
Run Code Online (Sandbox Code Playgroud)

具有相同名称的文件,但其中一个以下划线为前缀

如果你同时拥有foo.scss和_foo.scss,那么foo.scss将优先.如果你想要_foo.scss,你需要在import语句中添加下划线.

@import "test/_foo";
Run Code Online (Sandbox Code Playgroud)

无论你的import语句是什么样的,每次你保存时,Sass都会给你一个警告:

WARNING: In /path/to/test:
  There are multiple files that match the name "bar.scss":
    _bar.scss
    bar.scss
Run Code Online (Sandbox Code Playgroud)

  • 这是一个非常奇怪的设计决定 - 将文件视为一样. (6认同)

Nes*_*ric 12

如果在文件名的开头添加下划线,Sass将不会编译它.因此,如果您不想colors.scss编译,请改为colors.css命名文件_colors.scss.以这种方式命名的文件在Sass术语中称为partials.

有关Sass导入功能的更多信息,请点击此处