是否可以使用@import在sass中导入整个目录?

是否可以使用@import在sass中导入整个目录?,import,sass,partials,Import,Sass,Partials,我正在使用SASS部分模块化我的样式表,如下所示: @import partials/header @import partials/viewport @import partials/footer @import partials/forms @import partials/list_container @import partials/info_container @import partials/notifications @import partials/queues 有没有办法包括

我正在使用SASS部分模块化我的样式表,如下所示:

@import partials/header
@import partials/viewport
@import partials/footer
@import partials/forms
@import partials/list_container
@import partials/info_container
@import partials/notifications
@import partials/queues
有没有办法包括整个分区目录(这是一个充满SASS分区的目录),比如@import compass之类的

看起来不像

如果这些文件中的任何一个总是需要其他文件,那么让他们导入其他文件,并且只导入顶级文件。如果它们都是独立的,那么我认为你必须继续像现在这样做。

看起来不像


如果这些文件中的任何一个总是需要其他文件,那么让他们导入其他文件,并且只导入顶级文件。如果它们都是独立的,那么我认为您必须像现在一样继续这样做。

此功能永远不会成为Sass的一部分。一个主要原因是进口订单。在CSS中,上次导入的文件可以覆盖前面所述的样式。如果导入目录,如何确定导入顺序?这不可能不带来新的复杂性。通过保存一个导入列表(如您在示例中所做的),您就可以明确导入顺序。如果您希望能够自信地覆盖在另一个文件中定义的样式,或者在一个文件中写入混音并在另一个文件中使用它们,这一点非常重要


要进行更深入的讨论,请在此处查看:

此功能永远不会成为Sass的一部分。一个主要原因是进口订单。在CSS中,上次导入的文件可以覆盖前面所述的样式。如果导入目录,如何确定导入顺序?这不可能不带来新的复杂性。通过保存一个导入列表(如您在示例中所做的),您就可以明确导入顺序。如果您希望能够自信地覆盖在另一个文件中定义的样式,或者在一个文件中写入混音并在另一个文件中使用它们,这一点非常重要


要进行更深入的讨论,请查看此处:

查看。

查看。

我在
部分的同一目录中创建了一个名为
\uuuuuu partials\uuuuuuuuu.scs
的文件

|- __partials__.scss
|- /partials
   |- __header__.scss
   |- __viewport__.scss
   |- ....
\uuuu partials\uuuuuu.scss
中,我写了以下内容:

@import "partials/header";
@import "partials/viewport";
@import "partials/footer";
@import "partials/forms";
....

因此,当我想导入整个
部分时,只需编写
@import“partials”
。如果我想导入其中任何一个,我还可以编写
@import“partials/header”

我在
partials
的同一目录中创建一个名为
\uu partials\uuuuu.scs
的文件

|- __partials__.scss
|- /partials
   |- __header__.scss
   |- __viewport__.scss
   |- ....
\uuuu partials\uuuuuu.scss
中,我写了以下内容:

@import "partials/header";
@import "partials/viewport";
@import "partials/footer";
@import "partials/forms";
....

因此,当我想导入整个
部分时,只需编写
@import“partials”
。如果我想导入其中任何一个,我还可以编写
@import“partials/header”

这对我来说很好

@import 'folder/*';

这对我很管用

@import 'folder/*';

如果您在Rails项目中使用Sass,那么Sass Rails gem具有glob导入功能

@import "foo/*"     // import all the files in the foo folder
@import "bar/**/*"  // import all the files in the bar tree
在另一个回答中回答这个问题:“如果导入目录,如何确定导入顺序?这将带来新的复杂性。”

有些人认为将文件组织到目录中可以降低复杂性

我所在组织的项目是一个相当复杂的应用程序。17个目录中有119个Sass文件。这些基本上符合我们的观点,主要用于调整,繁重的工作由我们的定制框架处理。对我来说,几行导入的目录比119行导入的文件名稍微简单一些


为了解决加载顺序问题,我们将需要首先加载的文件(mixin、variables等)放在早期加载目录中。否则,加载顺序是并且应该是无关的。。。如果我们做得很好。

如果您在Rails项目中使用Sass,那么Sass Rails gem具有glob导入功能

@import "foo/*"     // import all the files in the foo folder
@import "bar/**/*"  // import all the files in the bar tree
在另一个回答中回答这个问题:“如果导入目录,如何确定导入顺序?这将带来新的复杂性。”

有些人认为将文件组织到目录中可以降低复杂性

我所在组织的项目是一个相当复杂的应用程序。17个目录中有119个Sass文件。这些基本上符合我们的观点,主要用于调整,繁重的工作由我们的定制框架处理。对我来说,几行导入的目录比119行导入的文件名稍微简单一些


为了解决加载顺序问题,我们将需要首先加载的文件(mixin、variables等)放在早期加载目录中。否则,加载顺序是并且应该是无关的。。。如果我们做得很好。

您可以通过将sass文件放在您想要导入的文件夹中,然后像下面这样导入该文件中的所有文件,来使用一些变通方法:

// Import all scss in the project

// Utilities, mixins and placeholders
@import 'utils/_all';

// Styles
@import 'components/_all';
@import 'modules/_all';
@import 'templates/_all';
path_src_sass = [
    './style/**/*.sass', // mixins, variables - import first
    './components/**/*.sass', // singule components
    './pages/**/*.sass' // higher-level templates that could override components settings if necessary
]
文件路径:main/current/_current.scss

@import“占位符”;
@输入“颜色”

在下一个目录级别的文件中,您只需对从该目录导入所有文件的文件使用导入:

文件路径:main/main.scss

#python3
import os

valid_file_endings = ["scss"]

with open("main.scss", "w") as scssFile:
    for dirpath, dirs, files in os.walk("."):
        # ignore the current path where the script is placed
        if not dirpath == ".":
            # change the dir seperator
            dirpath = dirpath.replace("\\", "/")

            currentDir = dirpath.split("/")[-1]
            # filter out the valid ending scss
            commentPrinted = False
            for file in files:
                # if there is a file with more dots just focus on the last part
                fileEnding = file.split(".")[-1]
                if fileEnding in valid_file_endings:
                    if not commentPrinted:
                        print("/* {0} */".format(currentDir), file = scssFile)
                        commentPrinted = True
                    print("@import '{0}/{1}';".format(dirpath, file.split(".")[0][1:]), file = scssFile)
@import“EricMeyerResetCSSv20”;
@导入“clearfix”;
@导入“当前”


这样,您就拥有了相同数量的文件,就像导入整个目录一样。注意顺序,最后出现的文件将覆盖匹配的梯架。

您可以使用一些解决方法,将sass文件放置在您要导入的文件夹中,然后像这样导入该文件中的所有文件:

// Import all scss in the project

// Utilities, mixins and placeholders
@import 'utils/_all';

// Styles
@import 'components/_all';
@import 'modules/_all';
@import 'templates/_all';
path_src_sass = [
    './style/**/*.sass', // mixins, variables - import first
    './components/**/*.sass', // singule components
    './pages/**/*.sass' // higher-level templates that could override components settings if necessary
]
文件路径:main/current/_current.scss

@import“占位符”;
@输入“颜色”

在下一个目录级别的文件中,您只需对从该目录导入所有文件的文件使用导入:

文件路径:main/main.scss

#python3
import os

valid_file_endings = ["scss"]

with open("main.scss", "w") as scssFile:
    for dirpath, dirs, files in os.walk("."):
        # ignore the current path where the script is placed
        if not dirpath == ".":
            # change the dir seperator
            dirpath = dirpath.replace("\\", "/")

            currentDir = dirpath.split("/")[-1]
            # filter out the valid ending scss
            commentPrinted = False
            for file in files:
                # if there is a file with more dots just focus on the last part
                fileEnding = file.split(".")[-1]
                if fileEnding in valid_file_endings:
                    if not commentPrinted:
                        print("/* {0} */".format(currentDir), file = scssFile)
                        commentPrinted = True
                    print("@import '{0}/{1}';".format(dirpath, file.split(".")[0][1:]), file = scssFile)
@import“EricMeyerResetCSSv20”;
@导入“clearfix”;
@导入“当前”


这样,您就拥有了相同数量的文件,就像导入整个目录一样。注意顺序,最后出现的文件将覆盖匹配的阶梯。

我也会搜索您问题的答案。对应