【问题标题】:How to make Compass to watch several folders simultaneously?如何让指南针同时观看多个文件夹?
【发布时间】:2012-05-30 12:47:28
【问题描述】:

我正在使用 Compass + Sass 来管理/合并我的 .css 文件。所以我有以下文件夹结构:

Root
--Module
----css
----sass
--Module
----css
----sass
--Module
----css
----sass

这是我想要实现的目标:在开发阶段,我想将 compass 指向我的根文件夹,它应该注意位于 sass 目录(每个 Module 中)的文件的任何更改。一旦 .sass 文件之一发生更改 - 应生成适当的 .css 文件(对于更改 .sass 所属的模块)并放入同一 Module 下的 css 文件夹。

有可能吗?

我猜我应该为此使用config.rb,但我不确定如何正确执行此操作。有人能指出我的解决方案或只是描述如何做的大致思路吗?

编辑:我在 Windows 环境下,所以不能使用 Linux 命令(我可以安装 Cygwin,但我宁愿避免它)

谢谢

【问题讨论】:

  • 您是否尝试过为每个模块文件夹添加手表?我很确定这是不可能的。
  • 是的,这正是我现在的解决方法 - 运行多个指南针实例
  • 你要写答案吗?

标签: ruby windows sass compass-sass


【解决方案1】:

我发现的唯一解决方法是运行多个 Compass 实例 - 每个模块一个。我敢打赌,通过调整 Compass 源代码可能会有更优雅的解决方案,但不幸的是我还不熟悉 Ruby...。

【讨论】:

  • 如果您只想添加要同时观看但只有一个编译目标的其他源,那么您可以在 config.rb 中使用add_import_path添加其他源。
  • Grunt + 指南针监视多个文件夹:stackoverflow.com/questions/20661596/…
【解决方案2】:

我的文件夹结构设置不同:

  • 资产
    • 萨斯
      • 模块
        • _module1.scss
        • _module2.scss
        • _module3.scss
      • screen.scss
    • 样式表
      • screen.css
    • config.rb

screen.scss:

@import "modules/module1";
@import "modules/module2";
@import "modules/module3";

config.rb:

...
css_dir = "stylesheets"
sass_dir = "sass"
...

模块名称开头的下划线表示它们不会被编译成单独的 css 文件。导入语句将它们组合在一起,以便所有 css 最终组合在 screen.css 中。请注意,在 import 语句中,您不需要下划线或 .scss。

如果您想维护单独的 css 文件(这是您建议您想要做的),您可以稍微修改此结构。删除下划线,compass 将创建单独的文件。

  • 资产
    • 萨斯
      • 模块
        • module1.scss
        • module2.scss
        • module3.scss
      • screen.scss
    • 样式表
      • 模块
        • module1.css
        • module2.css
        • module3.css
      • screen.css
    • config.rb

在这种情况下,您不需要 screen.scss 中的任何导入语句,因为每个单独的文件都需要单独包含在 html 文档中。

在这两种情况下,您将在 assets 文件夹中运行一次“compass watch”。请注意,您不需要在样式表目录中创建任何内容。指南针会这样做。

【讨论】:

    【解决方案3】:

    在您的 config.rb 文件中使用additional_import_paths 或更简单的add_import_path

    additional_import_paths 字符串数组系统上用于导入 sass 文件的其他路径。

    add_import_path 调用此函数将路径添加到您的 compass 项目的 sass 导入路径列表中。例如:add_import_path "/Users/chris/work/shared_sass"

    请参阅this answer,了解如何使用add_import_path 的示例

    来源: http://compass-style.org/help/documentation/configuration-reference/

    【讨论】:

      【解决方案4】:

      编译并观看几个独立的 Sass Compass 项目:https://stackoverflow.com/a/39635064/6440953

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-30
        • 2015-02-27
        • 1970-01-01
        • 1970-01-01
        • 2018-11-16
        • 1970-01-01
        • 2015-01-16
        相关资源
        最近更新 更多