导入所有SCSS文件但只有一个

时间:2015-01-12 13:39:04

标签: css sass

我有一个清单样式表,我导入了所有现有的样式表。然后将它们捆绑并最小化为单个CSS文件。

我需要做的是从一个文件夹导入所有文件,但只能导入一个。那是因为我正在使用Bourbon mixin库,并且必须在它之前提供覆盖变量,但之后的所有其他SCSS文件。

这是树的样子:

- helpers/
  - variables.scss
  - classes.scss
  - mixins.scss
- bundle.scss

我想做的是:

bundle.scss:

@import "helpers/variables";
@import "bourbon";
@import "helpers/*-without_variables";

我已经尝试使用helpers/*导入此文件夹中的所有文件,但它再次导入变量,我不希望这样。

2 个答案:

答案 0 :(得分:2)

没有。 Sass目前没有这样的功能。您唯一的选择是仅包含您实际想要的文件

如果您尝试导入的任何文件导入了您尝试排除的文件,除了修改源文件之外,您无能为力。

如果您正在使用Compass,默认情况下会附带一次性导入扩展程序。这将涵盖此用例(仅导入指定的文件一次),但如果您在任何情况下都不想导入特定文件,则无效。

导入一次功能预计将成为Sass 4.0的一项功能(参见:https://github.com/sass/sass/issues/139

答案 1 :(得分:-1)

是的,有一个SASS插件,它可以防止重复包含SCSS / SASS文件:“SASS Import Once”。

  

当包含在SASS模块中时,sass-import-once将阻止   如果在其他地方调用@import,则复制样式。这是   酷,因为它允许每个SASS文件声明自己的   依赖。这促进了封装并允许模块   如果需要,可以单独使用。

https://github.com/wilsonpage/sass-import-once

指南针也有一些相关功能,但我无法记住这个名字。