我正在使用SASS 3.3.8和Compass 1.0.0.alpha.19。
为了缩短项目中的SASS编译时间,我拆分了样式表,@ import-ing mixins,变量和占位符选择器。我的项目文件结构如下所示:
scss/
library/
_library.scss
_section_a_widgets.scss
_section_b_widgets.scss
section_b.scss
section_a.scss
在section_a.scss中,我有:
@import "library";
@import "section_a_widgets";
在section_b.scss中,我有:
@import "library";
@import "section_b_widgets";
这样,当我正在处理时,例如section_a_widgets.scss,我只需要等待section_a.scss进行编译。
出于某种原因,当我保存section_a_widgets.scss时,我的Compass任务表明section_a.scss已被“覆盖”(这是有道理的),但也表明section_b.scss是“相同的”。这对我来说没有意义,因为section_a_widgets.scss中没有任何内容包含在sction_b.scss中,并且它违背了拆分我的样式表的目的,因为Compass需要几乎同样的时间来得出文件相同的结论,因为它用新的更改覆盖文件。
有没有人能够了解我在设置中出错的地方?我的目标是达到一个点,当我保存section_a_widgets.scss时,section_a.scss将被“覆盖”,但section_b.scss将“未更改”(表示Compass没有费心去尝试编译它)。
谢谢!
答案 0 :(得分:0)
因此,由于在评论中收集的信息,这里的主要问题是grunt-contrib-compass正在通过指南针编译命令而不是通过指南针监视来执行指南针。
这意味着,每次执行任务时,它都会遍历所有资产并处理它们。如果它们是相同的,那么什么都不会发生,但正如你所说,你将浪费时间分析它们。
您正在寻找的是指南针监视,它将在每次文件更改时执行,并且仅在已更改的文件上执行。这对于在后台运行的任务非常有用,如果您激活此任务,您将获得所需的结果。
请注意,这将在您的工作时间内运行,我的意思是,您运行此任务,修改文件,只会重新编译受影响的文件,而忽略其他文件。
您必须阅读文档才能设置此环境。在他们的官方存储库页面上,您可以查看一些示例:check here.
希望这有助于让你走上正轨!