Используя спрайты, сгенерированные Compass в Middleman, как исключить исходные файлы спрайтов из сборки? - PullRequest
0 голосов
/ 18 февраля 2012

Используя Middleman 2.0.14, я использую функции Compass для генерации некоторых спрайтов в моем файле CSS с:

@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 ]

2 голосов
/ 19 февраля 2012

Я предлагаю очистить их скриптом (или after_build хуком).Это стандартное поведение Compass для генерации изображений в режиме разработки, и для его изменения потребовалось бы несколько исправлений (сейчас бета-версия Compass имеет прямой доступ к этим параметрам).

В версии 3.0 вы можете попробовать:

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

Но я не уверен, что Компас не захлебнется этим.

0 голосов
/ 06 декабря 2015

Использование 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;
...