为什么要在文件名前面加上“_&引用;或_&引用;在scss/css中?

为什么要在文件名前面加上“_&引用;或_&引用;在scss/css中?,css,import,sass,Css,Import,Sass,为什么要在scss中的文件名前面放 \u filename.scss-为什么它需要\u?以下划线开头的sass文件是部分文件。这是将样式分隔为逻辑部分的好方法。当您使用@import时,这些文件都会在编译时合并 从Sass语言指南: 您可以创建包含CSS小片段的部分Sass文件,这些CSS片段可以包含在其他Sass文件中。这是一个模块化CSS的好方法,有助于使事情更易于维护。分部文件只是一个以前导下划线命名的Sass文件。您可以将其命名为_partial.scss。下划线让Sass知道该文件只是

为什么要在scss中的文件名前面放


\u filename.scss
-为什么它需要
\u

以下划线开头的sass文件是部分文件。这是将样式分隔为逻辑部分的好方法。当您使用
@import
时,这些文件都会在编译时合并

从Sass语言指南:

您可以创建包含CSS小片段的部分Sass文件,这些CSS片段可以包含在其他Sass文件中。这是一个模块化CSS的好方法,有助于使事情更易于维护。分部文件只是一个以前导下划线命名的Sass文件。您可以将其命名为_partial.scss。下划线让Sass知道该文件只是一个部分文件,不应将其生成为CSS文件。Sass partials与@import指令一起使用

下划线是SCS的一部分。这意味着样式表将被导入(@import)到主样式表,即styles.scss。使用partials的优点是,您可以使用许多文件来组织代码,所有内容都将在一个文件中编译。

编译器会忽略带有下划线的文件。但是,所有这些文件都导入到单个主SCSS文件(即styles.SCSS)中,该文件实际上就是编译的文件(名称中没有下划线)

最终的目标是只编译一个SCSS文件,并因此只拥有一个CSS文件,这有很多优点。

当您在文件名前面包含“u”时,除非您将其导入另一个非部分的sass文件,否则它不会生成到CSS中

假设您的文件夹结构如下

/scss
 style.scss
 _list.scss
/css
如果您运行该命令

sass --watch scss:css
仅创建style.css和style.css.map文件,sass编译器将省略_list.scs,而不将其内容转换为css文件

/scss
 style.scss
 _list.scss
/css
 style.css
 style.css.map
使用partials的唯一方法是使用

@import 'list.scss';
如果删除_list.scs前面的“_”,则命令的结果将为

/scss
 style.scss
 list.scss
/css
 style.css
 style.css.map
 list.css
 list.css.map

使用partials的主要目的是将CSS代码分解为几个易于维护的部分。希望这有帮助。谢谢。

如果不使用下划线前缀,在节点环境中使用节点SAS的监视程序也会导致错误消息,请参见用于表示部分。这些部分包含预处理阶段所需的变量和内部函数,它们不需要编译为css部分模板包含将scss编译为css所需的UTIL、scss局部变量和函数。

import'\u file'
导入“_文件”同样的事情是否正确?@aokaddaoc好像你写了同样的代码行:)哦,谢谢你指出我的错误。“但是,
import'_file';
import'file';
是否正确?”如果我以一种只向编译器/预处理器发送一个文件的方式构造文件,为什么我的文件前面有
\u
?我正在考虑从我的文件名中删除下划线。Sass文件是否为部分文件(即可导入的代码段)应取决于其在项目体系结构中的位置,而不是文件的命名方式。@ESR:同意,在现代web开发环境中,此功能感觉有点过时。如果你的项目结构合理,你肯定不需要
这是正确的答案。但是,您也没有提到_index.scss的特殊情况:如果您使用像webpack这样的系统,将整个css打包并缩小,那么您似乎并不真正需要使用片段。我错了吗?