Compass将文件和标签编译为“相同”,但根本不应该编译文件

时间:2014-08-04 18:03:21

标签: compilation sass compass-sass

我正在使用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没有费心去尝试编译它)。

谢谢!

1 个答案:

答案 0 :(得分:0)

因此,由于在评论中收集的信息,这里的主要问题是grunt-contrib-compass正在通过指南针编译命令而不是通过指南针监视来执行指南针。

这意味着,每次执行任务时,它都会遍历所有资产并处理它们。如果它们是相同的,那么什么都不会发生,但正如你所说,你将浪费时间分析它们。

您正在寻找的是指南针监视,它将在每次文件更改时执行,并且仅在已更改的文件上执行。这对于在后台运行的任务非常有用,如果您激活此任务,您将获得所需的结果。

请注意,这将在您的工作时间内运行,我的意思是,您运行此任务,修改文件,只会重新编译受影响的文件,而忽略其他文件。

您必须阅读文档才能设置此环境。在他们的官方存储库页面上,您可以查看一些示例:check here.

希望这有助于让你走上正轨!