2012-05-23 48 views
11

我正在使用Compass + Sass来管理/合并我的.css文件。所以,我有以下文件夹结构:如何让罗盘同时观看几个文件夹?

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

在这里,我想什么来实现的:在开发阶段,我想指出指南针,我的根文件夹,并应注意有无定位在文件中的任何改变sass目录(每个Module)。一旦.sass文件中的一个发生更改 - 应生成相应的.css文件(对于更改模块.sass所属的文件),并将其放入css文件夹下的相同Module

可能吗?

我的猜测我应该使用config.rb为此目的,但我不知道如何正确地做到这一点。有人可以指点我的解决方案,或只是描述如何做到这一点的一般想法?

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

感谢

+0

你有没有尝试添加的手表到每个模块夹?我很确定这是不可能的。 – markus

+0

是的,这正是我现在的解决方法 - 运行指南针的几个实例 –

+0

你想写一个答案吗? – markus

回答

3

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

+4

如果您只想添加其他来源以便同时观看,但只有一个编译目标,那么您可以使用'add_import_path'将其他来源添加到config.rb中。 – markus

+1

Grunt +指南针观看多个文件夹:http://stackoverflow.com/questions/20661596/running-multiple-compass-sass-watch-operations-automatically –

4

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

  • 资产
    • 青菜
      • 模块
        • _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中。请注意,在导入语句中,您不需要下划线或.scss。

如果你想维护个别的css文件(这是你建议你想做的),你可以稍微修改这个结构。删除下划线,指南针将创建单个文件。

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

在这种情况下,你不需要任何import语句在screen.scss,因为每个单独的文件将需要在HTML文档中单独包括。

在这两种情况下,您都会在资产文件夹中运行一次“罗盘监视”。请注意,您不需要在样式表目录中创建任何内容。指南针将做到这一点。

1

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

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

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

this answer关于如何使用add_import_path

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