如何在libsass中导入目录

How to import directory in libsass

我正在尝试在我的 app.scss 中导入几个 SCSS 文件(page1.scss、page2.scss 和..),但我还没有找到任何解决方案(插件等等)。

我看到 these answers 但它们是针对 Rails 上的 Ruby 而不是 libsass。我正在使用:

Gulp,

Gulp-sass,

库sass 和

Laravel 灵药

有什么解决办法吗?

长答简答:

正如您在此 issue in the official libsass project github, globs 中发现的那样,它们不是 SASS 规范的一部分,因此没有计划在 libsass 中支持它们。

为什么?

实现此功能的主要问题与导入文件的顺序有关。首先,据我所知,在不同的 OS (linux, mac os x, windows) 或 文件系统(reiserfs、ext3、ntfs、fat32 等),导致导入文件时顺序不可预测的原因。

无论如何,即使会有某种 cross 平台标准支持从每个文件系统读取文件,并且您确信您总是会以相同的顺序获取文件。应该是哪个顺序?

如果你还need/want它:

仍然有一些 hack-y 方法可以实现此行为,但我强烈建议避免使用它们并遵循 官方建议.

有一个rubygem:sass-globbing. But it doesn't works with gulp/libsass because of the different way they handle files streams. Inspired on this ruby-gem there is gulp-css-globbing。看起来这个项目有点过时了,但是你可以使用它,风险自负。
在这个博客 post: Sass Directory Imports With Gulp 中,您可以找到另一个解决方案,该解决方案涉及 自动 为每个文件夹创建一个文件,将所有文件导入其中。对我来说有点复杂,但如果你真的需要它,它会起作用。