为什么将_
放在scss中的文件名前面?
_filename.scss
- 为什么需要_
?
答案 0 :(得分:100)
_(下划线)是scss的一部分。这意味着要将样式表导入(@import)到主样式表,即styles.scss。使用partials的优点是你可以使用许多文件来组织代码,所有内容都将编译在一个文件中。
答案 1 :(得分:43)
以下划线开头的sass文件是部分的。这是将样式分成逻辑部分的好方法。使用@import
时,这些文件都会在编译时合并。
来自Sass语言指南:
您可以创建包含很少CSS片段的部分Sass文件,您可以将这些片段包含在其他Sass文件中。这是模块化CSS并帮助维护事物更容易的好方法。 partial只是一个以前导下划线命名的Sass文件。您可以将其命名为_partial.scss。下划线让Sass知道该文件只是一个部分文件,不应该生成CSS文件。 Sass partials与@import指令一起使用。
答案 2 :(得分:5)
带有_(下划线)的文件将被编译器忽略。但是,所有这些文件都将导入到单个主SCSS文件(即styles.scss)中,该文件实际上是已编译的文件(名称中没有_(下划线))
最终目标是仅编译一个SCSS文件,结果仅编译一个CSS文件,这具有各种优点。
答案 3 :(得分:3)
在文件名前面加上“ _”时,除非将其导入到另一个不完整的sass文件中,否则不会在CSS中生成它。
假设您的文件夹结构是这样
/scss
style.scss
_list.scss
/css
如果您运行命令
sass --watch scss:css
仅将创建style.css和style.css.map文件,sass编译器将省略_list.scss而不将其内容转换为CSS文件。
/scss
style.scss
_list.scss
/css
style.css
style.css.map
唯一使用局部的方法是使用
将它们导入另一个.scss文件。@import 'list.scss';
如果您删除_test.scss前面的'_',则命令的结果将为
/scss
style.scss
_list.scss
/css
style.css
style.css.map
test.css
test.css.map
使用partials的主要目的是将我们的CSS代码分解为易于维护的几段。希望这可以帮助。谢谢。
答案 4 :(得分:0)
如果在不使用下划线前缀的情况下在节点环境中使用node-sass的监视程序,也会导致错误消息,请参见https://github.com/sass/node-sass/issues/2762
答案 5 :(得分:0)
_用于表示部分。这些部分包含预处理阶段所需的变量和内部函数,并且不需要将它们编译为css。 _部分模板包含utils,scss局部变量和将scss编译为css所需的功能。