为什么要放在文件名前面" _"或" _"在scss / css中?

时间:2016-01-20 01:25:56

标签: css sass

为什么将_放在scss中的文件名前面?

_filename.scss - 为什么需要_

6 个答案:

答案 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指令一起使用。

http://sass-lang.com/guide

答案 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所需的功能。