【发布时间】:2016-04-25 16:53:34
【问题描述】:
为什么在 scss 的文件名前面加上_?
_filename.scss - 为什么需要_?
【问题讨论】:
为什么在 scss 的文件名前面加上_?
_filename.scss - 为什么需要_?
【问题讨论】:
_ 用于表示部分。这些partials包含了预处理阶段需要的变量和内部函数,不需要编译成css。 _ 部分模板包含将 scss 编译为 css 所需的 utils、scss 局部变量和函数。
【讨论】:
当你在文件名前包含“_”时,它不会生成到 CSS 中,除非你将它导入到另一个非部分的 sass 文件中。
假设你的文件夹结构是这样的
/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';
如果您删除 _list.scss 前面的“_”,命令的结果将是
/scss
style.scss
list.scss
/css
style.css
style.css.map
list.css
list.css.map
使用 partials 的主要目的是将我们的 CSS 代码分解成几个更易于维护的部分。希望这可以帮助。谢谢。
【讨论】:
同样在node环境中使用node-sass的watcher,如果不加下划线前缀会报错,见https://github.com/sass/node-sass/issues/2762
【讨论】:
以下划线开头的 sass 文件是部分文件。这是将样式分成逻辑部分的好方法。当您使用 @import 时,这些文件都会在编译时合并。
来自 Sass 语言指南:
您可以创建部分 Sass 文件,其中包含可以包含在其他 Sass 文件中的少量 CSS 的 sn-ps。这是模块化 CSS 并有助于使事情更易于维护的好方法。部分文件只是一个以前导下划线命名的 Sass 文件。您可以将其命名为 _partial.scss。下划线让 Sass 知道该文件只是部分文件,不应将其生成为 CSS 文件。 Sass 部分与 @import 指令一起使用。
【讨论】:
编译器会忽略带有 _(下划线)的文件。但是,所有这些文件都被导入到单个主 SCSS 文件(即 styles.scss)中,该文件实际上是被编译的文件(它的名称中没有 _(下划线))
最终的目标是只编译一个SCSS文件,结果只有一个CSS文件,这有很多好处。
【讨论】:
_(下划线)是 scss 的一部分。这意味着样式表将被导入(@import)到主样式表,即styles.scss。使用 partials 的好处是你可以使用很多文件来组织你的代码,所有的东西都会被编译到一个文件中。
【讨论】:
import '_file'; 和import 'file'; 做同样的事情对吗?”
_ 开头有什么关系?我正在考虑从我的文件名中删除下划线。 Sass 文件是否是部分文件(即一段可导入的代码)应该取决于它在项目架构中的位置,而不是文件的命名方式。
_s。
import '_file' 不是首选形式? (如果我在这里错了,请纠正我,但它通常似乎不是。)因为这就是部分文件 actually 的名称。甚至可能没有一个名为file.scss...