Используя сгенерированные спрайты Compass в Мидлман, как оставить исходные файлы спрайта из сборки?

StackOverflow https://stackoverflow.com/questions/9339024

  •  27-10-2019
  •  | 
  •  

Вопрос

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

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

Это берет все файлы из source/images/companies/*.png и генерирует один файл спрайта source/images/companies-s45e421528f.png. Анкет Все идет нормально.

Когда я делаю middleman build, он покорно копирует сгенерированный файл изображения, но также включает companies/*.png файлы

Это не имеет большого значения, чтобы сценарий развертывания удалил эти дополнительные файлы, но мне интересно, есть ли вариант, который мне где -то не хватает? (Или, может быть companies/*.png Файлы где -то еще в дереве источника?

Это было полезно?

Решение

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

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

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

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

Другие советы

С использованием 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;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top