部分 Sass 文件中的下划线

Posted

技术标签:

【中文标题】部分 Sass 文件中的下划线【英文标题】:Underscore in partial Sass file 【发布时间】:2015-09-27 10:54:18 【问题描述】:

.scss 部分文件是否需要以下划线开头?文档指出部分应以下划线开头,否则该文件将编译为 CSS 文件。

但是我注意到 gulp-sass 可以将没有下划线的文件编译成一个完整的 CSS 文件。

【问题讨论】:

【参考方案1】:

1. 如果您不希望将部分生成到css 文件中,则它们必须以下划线开头。

2.scss 文件可以导入另一个不带下划线的文件,并且仍然可以正确编译。

举个例子:

sass
    +-- base
    |   +-- _normalize.scss 
    +-- components  
    |   +-- site-header.scss
    +-- utilities       
    |   +-- _icons.scss
    +-- site.scss

在这里我们可以看到site-header.scsssite.scss 没有下划线。如果我运行 gulp 任务来编译 sass 文件夹中的任何内容,则会输出两个文件。

site-header.css
site.css

我们不想生成site-header.css,但由于我们省略了下划线,编译器只会忽略带有下划线的文件并为其生成css 文件。

site-header.scss 仍然可以在 site.scss 中使用 @import 引用

@import 'components\site-header';

无论是否带有下划线前缀,这将导致相同的结果。

【讨论】:

如果你将一个没有前置下划线的 Sass 文件导入另一个同样没有前置下划线的 Sass 文件,那么只会生成一个 CSS 文件,因此声明 Partials must start with an underscore if you do not want them to be generated into a css file. 不是真的true - 我可以有不以下划线开头的部分,也不会生成到 CSS 文件中。这取决于您如何将文件发送到编译器,对吧?

以上是关于部分 Sass 文件中的下划线的主要内容,如果未能解决你的问题,请参考以下文章

webpack 的 sass-loader 找不到没有下划线前缀的基础 scss 文件

导入sass文件

手把手带你了解sass

scss 智能下划线Sass Mixin

如何使用 Bootstrap for Wordpress 将 Sass 实现为下划线主题?

防止 SASS/Compass 输出分音