Ruby 如何使指南针同时监视多个文件夹?

Ruby 如何使指南针同时监视多个文件夹?,ruby,windows,sass,compass-sass,Ruby,Windows,Sass,Compass Sass,我使用Compass+Sass来管理/组合我的.css文件。因此,我有以下文件夹结构: Root --Module ----css ----sass --Module ----css ----sass --Module ----css ----sass 这里是我想要实现的目标:在开发阶段,我想将compass指向我的根文件夹,它应该监视位于sass目录(在每个模块中)的文件中的任何更改。一旦其中一个.sass文件发生更改,应生成相应的.css文件(对于更改后的.sass所属的模块),并将其放入

我使用Compass+Sass来管理/组合我的
.css
文件。因此,我有以下文件夹结构:

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

可能吗

我想我应该为此使用
config.rb
,但我不知道如何正确地做到这一点。有人能告诉我解决方案吗,或者只是描述一下如何做的一般想法

编辑:我在Windows环境中,因此无法使用Linux命令(我可以安装Cygwin,但我更愿意避免安装它)


谢谢

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

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

  • 资产
    • 无礼
      • 模块
        • _模块1.scss
        • _模块2.scss
        • _模块3.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文件。import语句将它们组合在一起,以便所有css最终组合在screen.css中。注意,在import语句中,不需要下划线或.scss

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

  • 资产
    • 无礼
      • 模块
        • 模块1.scss
        • 模块2.scss
        • 模块3.scss
      • screen.scss
    • 样式表
      • 模块
        • 模块1.css
        • 模块2.css
        • module3.css
      • screen.css
    • config.rb
在这种情况下,screen.scss中不需要任何导入语句,因为每个单独的文件都需要单独包含在html文档中


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

使用config.rb文件中的
附加导入路径
或更简单的
添加导入路径

其他导入路径
字符串数组系统上要从中导入sass文件的其他路径

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

有关如何使用
add\u import\u path的示例,请参见

资料来源:

编译并观看几个独立的Sass Compass项目:

您是否尝试过在每个模块文件夹中添加一个手表?我很确定这是不可能的。是的,这正是我现在解决问题的方法-运行多个Compass实例你想写一个答案吗?如果你只想添加额外的源代码以同时监视,但只有一个编译目标,然后,您可以使用
add\u import\u path
在config.rb中添加其他源。Grunt+compass监视多个文件夹: