是否可以使用@import在sass中导入整个目录?
我正在使用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 有没有办法包括
@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”;
@导入“当前”代码>
这样,您就拥有了相同数量的文件,就像导入整个目录一样。注意顺序,最后出现的文件将覆盖匹配的阶梯。我也会搜索您问题的答案。对应