我正在使用Compass + Sass来管理/合并我的.css
文件。所以我有以下文件夹结构:
Root
--Module
----css
----sass
--Module
----css
----sass
--Module
----css
----sass
这就是我想要实现的目标:在开发阶段我想将指南针指向我的根文件夹,它应该监视位于sass
目录的文件中的任何更改(每个{{1} }})。其中一个.sass文件发生更改后,应生成相应的Module
文件(对于已更改的.css
所属的模块),并将其放入同一.sass
下的css
文件夹中。
有可能吗?
我猜我应该Module
用于此目的,但我不确定如何正确地做到这一点。有人能指出我的解决方案,或者只描述如何做到的一般想法吗?
编辑:我在Windows环境中,所以无法使用Linux命令(我可以安装Cygwin,但我更愿意避免使用它)
由于
答案 0 :(得分:4)
我的文件夹结构设置不同:
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文件(这是您建议的操作),可以稍微修改此结构。删除下划线,指南针将创建单个文件。
在这种情况下,screen.scss中不需要任何import语句,因为每个单独的文件都需要单独包含在html文档中。
在这两种情况下,您都会在assets文件夹中运行一次“指南针监视”。请注意,您无需在stylesheets目录中创建任何内容。指南针会这样做。
答案 1 :(得分:3)
我找到的唯一解决方法是运行多个Compass实例 - 每个模块一个。我打赌通过调整Compass源代码可以有更优雅的解决方案,但不幸的是我还不熟悉Ruby ......但是。
答案 2 :(得分:2)
在 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/
答案 3 :(得分:1)
编译并观看几个独立的Sass Compass项目:https://stackoverflow.com/a/39635064/6440953