在Middleman中使用Compass生成的sprite,如何从构建中省略sprite源文件?

时间:2012-02-18 05:59:47

标签: middleman

使用Middleman 2.0.14,我使用Compass功能在我的CSS文件中生成一些sprite:

@import "companies/*.png";
@include all-companies-sprites;

这将从source/images/companies/*.png获取所有文件并生成单个精灵文件source/images/companies-s45e421528f.png。到目前为止,非常好。

当我执行middleman build时,它会尽职地复制生成的图像文件,但也包含companies/*.png个文件。

部署脚本删除这些额外文件并不是什么大不了的事,但我想知道是否有某个选项我在某处丢失了? (或许'几乎准备发布MM 3.x'有一个解决方案?)也许我应该将companies/*.png文件放在源树中的其他地方?

2 个答案:

答案 0 :(得分:2)

我建议用脚本(或after_build挂钩)清理它们。这是Compass的默认行为,在开发模式下生成图像,并且需要一些猴子修补才能更改(目前,Compass beta可以直接访问这些选项)。

在3.0中,您可以尝试:

configure :build do
  ignore "source/images/companies/*.png"
end

但我不确定指南针会不会因此而窒息。

答案 1 :(得分:0)

使用ignore显着减慢了构建速度,因此我更倾向于将精灵资源放在source/之外。

这样,精灵会在source/sprites/build/sprites下生成,并且排除这些来源而不会ignore

以下是如何进行设置:

# config.rb

compass_config do |config|
    # tell Compass to load sprites from `project_root/sprites`
    config.sprite_load_path = 
      config.sprite_load_path
      .to_a
      .push(File.join root, 'sprites')
end 
# style.css.scss

@import "..sprites/companies/*.png";
@include all-companies-sprites;