sass - 将多个目录中的多个 SASS 文件编译成单独的单个目录中的多个 CSS 文件

标签 sass

我需要将一个目录下的多个sass文件编译成另一个目录下多个对应的css文件。例如:

src/folder1/file1.scss  --compiles to--  public/file1.css
src/folder2/file2.scss  --compiles to--  public/file2.css

这是我正在使用的命令:
./src/*/*.scss ./public

在尝试此操作之前,我仅使用 ./src/*/*.scss 编译所有 .scss 文件。 ,并在各自的目录中获取相应的 .css 文件。但是,尝试将它们转储到不同的目录是行不通的。相反,其中一个 .scss 文件将一个 .scss 部分导入语句导入 .scss 文件本身,创建了一个 .scss.map 文件,之后没有其他任何事情发生。

SASS 甚至有这个能力吗?我尝试了上述命令的不同变体,偶尔我会看到一个错误,说“public”是一个目录,这让我相信 SASS 不允许将目录作为输出。实际上,文档只提供了一个输出文件作为编译 SASS 的示例(即 sass input.scss output.css)。

我使用 NPM 脚本作为构建工具,所以请不要使用 Grunt、Gulp 等。

*还有一点需要注意。我刚刚尝试使用 sass --watch而不是正常的编译命令,它有点像我需要的那样:
sass --watch src:public
我遇到的唯一问题是它不会只在公共(public)场合创建 css 文件。相反,它会在该文件夹中创建一个文件夹和一个 .css 和 .css.map 文件。似乎 SCSS 将为每个 .scss 文件添加一个与 watch 遍历的相对路径相对应的路径。 .如果它不会创建这个额外的文件夹,这个解决方案将是理想的。

最佳答案

您可以通过指定多个 source:output 将多个 sass 文件编译成多个 css 文件,并用空格分隔,如下所示:

sass --watch src/file1.scss:dist/file1.css src/file2.scss:dist/file2.css

您可以根据需要更改 src 或输出路径。

关于sass - 将多个目录中的多个 SASS 文件编译成单独的单个目录中的多个 CSS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42611885/

相关文章:

css - 如何在 Visual Studio 2012 中反射(reflect)运行时对 CSS 的更新?

css - 使用 SASS 和 OOCSS 引用

css - 如何入门NodeJS和Sass元素,这样我就可以自定义bootstrap 4主题了

javascript - 如何使用 createElement() 重新创建整个 div

css - 使用 Compass 进行多重转换

css - 从 rails 3.2 升级到 4.1,没有加载 scss 或 css

css - 在 sass/scss 中制作变量的乘积

css - 我是否必须将 SASS 源文件上传到 Prestashop 服务器?

css - 我可以更改 Angular 2 中的 scss 文件的变量吗

twitter-bootstrap - 将 Bootstrap SASS 添加到 Jekyll/GitHub 页面