Используя сгенерированные спрайты Compass в Мидлман, как оставить исходные файлы спрайта из сборки?
-
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;