【问题标题】:Why put in front of the file name "_" or "_" in scss/css?为什么在scss/css文件名“_”或“_”前面加?
【发布时间】:2016-04-25 16:53:34
【问题描述】:

为什么在 scss 的文件名前面加上_

_filename.scss - 为什么需要_

【问题讨论】:

    标签: css import sass


    【解决方案1】:

    _ 用于表示部分。这些partials包含了预处理阶段需要的变量和内部函数,不需要编译成css。 _ 部分模板包含将 scss 编译为 css 所需的 utils、scss 局部变量和函数。

    【讨论】:

    • 这似乎没有为多年前的现有答案添加任何内容。
    【解决方案2】:

    当你在文件名前包含“_”时,它不会生成到 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 代码分解成几个更易于维护的部分。希望这可以帮助。谢谢。

    【讨论】:

    【解决方案3】:

    同样在node环境中使用node-sass的watcher,如果不加下划线前缀会报错,见https://github.com/sass/node-sass/issues/2762

    【讨论】:

      【解决方案4】:

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

      来自 Sass 语言指南:

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

      http://sass-lang.com/guide

      【讨论】:

        【解决方案5】:

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

        最终的目标是只编译一个SCSS文件,结果只有一个CSS文件,这有很多好处。

        【讨论】:

        • 如果您使用像 webpack 这样的系统,它会捆绑并缩小您的整个 css,您似乎并不需要使用 partials。我错了吗?
        【解决方案6】:

        _(下划线)是 scss 的一部分。这意味着样式表将被导入(@import)到主样式表,即styles.scss。使用 partials 的好处是你可以使用很多文件来组织你的代码,所有的东西都会被编译到一个文件中。

        【讨论】:

        • 哦,谢谢你指出我的错误。 “但是import '_file';import 'file'; 做同样的事情对吗?”
        • 如果我以一种我只向编译器/预处理器发送单个文件的方式构建文件,那么我的文件是否以_ 开头有什么关系?我正在考虑从我的文件名中删除下划线。 Sass 文件是否是部分文件(即一段可导入的代码)应该取决于它在项目架构中的位置,而不是文件的命名方式。
        • @ESR:同意,这个功能在现代 Web 开发环境中感觉有点过时了。如果您的项目结构合理,则绝对不需要_s。
        • 为什么import '_file' 不是首选形式? (如果我在这里错了,请纠正我,但它通常似乎不是。)因为这就是部分文件 actually 的名称。甚至可能没有一个名为file.scss...
        猜你喜欢
        • 1970-01-01
        • 2017-01-16
        • 2015-04-29
        • 1970-01-01
        • 2023-01-30
        • 2021-12-28
        • 2020-07-25
        • 2018-11-02
        • 1970-01-01
        相关资源
        最近更新 更多