指南针监视 - 忽略config.rb中的文件

时间:2014-03-21 14:49:30

标签: sass compass-sass ignore guard watch

这是我的目录结构

css/
sprites/_sprite.scss
scss/important.scss
scss/file1.scss
...
scss/file5.scss
scss/file6.scss
scss/file7.scss
scss/file8.scss
scss/file9.scss
scss/file10.scss

我希望能够使用

compass watch

仅监控对scss / important.scss文件的更改。 我知道

compass watch scss/important.scss

但是我想要使用配置文件conf.rb来实现同样的目的,所以我可以使用这样的指南针

compass watch

为什么我要这样做?因为我想通过Guard运行罗盘。我知道在Guard中我可以看到某些文件,但它对我没有帮助,因为罗盘总是重建所有的scss文件,无论看守是什么。

我想只构建一个scss文件的原因是因为我使用指南针生成PNG精灵,导入精灵的每个scss需要5秒。使用Guard与LiveReload(11 x 5s !!!)的方式太长了。

使用“_”为其他SCSS文件添加前缀不是一个选项。

我只想让罗盘观看一个文件,而不必将此文件指定为命令行参数

2 个答案:

答案 0 :(得分:1)

好的,我有两个想法也许可以帮到你。

  1. 将您的sass文件移动到除main.scss之外的其他目录,根据您的需要为该目录​​命名,例如:includes。然后放additional_import_paths = 'path/to/includes',保留原来的sass_dir。最后在main.scss导入其他文件。现在,罗盘知道main.scss的依赖关系,但不会编译这些文件,因为它们保留在一个独立的目录中。

    但是还有一个小问题:如何在生产环境中编译它们?好吧,指南针允许我们指定环境变量,如environment = :production(其默认值为:development)。有了这些帮助,您可以将sass_dir写为sass_dir = (environment == :production) ? 'path/includes/main' : ['path/includes/main', 'path/includes/others'],并在最后阶段执行命令:compass compile -e production

  2. 写一个bash别名,例如:alias mycompass="compass watch scss/main.scss",你就知道了。使用mycompass为自己的工作,留下指南针应该是。

答案 1 :(得分:1)

我最终做的是:

我跑

compass watch scss/important.scss

在一个控制台中

guard -i

在另一个控制台中。我设置Guard来观察CSS文件cachanges并进行LiveReload。我从防护配置中删除了指南针。现在一切正常,除了我必须保持两个终端打开。