导入除一个以外的所有 SCSS 文件

Import all SCSS files but one

我有一个清单样式表,我在其中导入所有现有样式表。然后将它们捆绑并最小化为单个 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/* 导入此文件夹中的所有文件,但它再次导入变量,我不想这样。

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

的文件

如果您尝试导入的任何文件导入了您尝试排除的文件,除了修改源文件外,您别无他法。

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

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

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

When included in a SASS module, sass-import-once will prevent the styles being duplicated if @import is called somewhere else. This is cool because it allows every SASS file to declare its own dependencies. This promotes encapulation and allows modules to standalone if need be.

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

指南针也有一些相关的功能,但是我记不起名字了。