En utilisant Compass sprites générés dans Middleman, comment laisser des fichiers source sprite de la construction?
-
27-10-2019 - |
Question
Utilisation Middleman 2.0.14, j'utilise la boussole propose de générer des sprites dans mon fichier CSS avec:
@import "companies/*.png";
@include all-companies-sprites;
Cela prend tous les fichiers de source/images/companies/*.png
et génère un seul fichier de sprite source/images/companies-s45e421528f.png
. Jusqu'à présent, si bon.
Quand je fais une middleman build
, il copie sur le fichier consciencieusement d'image généré, mais inclut également les fichiers companies/*.png
.
Son pas une grosse affaire d'avoir un script de déploiement supprimer ces fichiers supplémentaires, mais je me demande s'il y a une option qui me manque quelque part? (Ou peut-être le « presque prêt à libérer 3.x MM » a une solution?) Peut-être que je devrais mettre les fichiers companies/*.png
quelque part ailleurs dans l'arbre source?
La solution
Je suggère de les nettoyer avec un script (ou un crochet after_build
). Ceci est le comportement par défaut de boussole, pour générer des images en mode de développement, et il faudrait un certain rapiéçage singe à modifier (pour l'instant, la version bêta de Compass ont un accès direct à ces options).
Dans la version 3.0, vous pouvez essayer:
configure :build do
ignore "source/images/companies/*.png"
end
Mais je ne suis pas sûr Compass n'étouffer sur ce point.
Autres conseils
L'utilisation ignore
a ralenti la construction de manière significative pour moi donc je préférais mettre les actifs de sprite en dehors de source/
.
De cette façon, les sprites sont générés sous source/sprites/
, build/sprites
et les sources sont exclues sans ignore
ing il.
Voici comment établir ceci:
# 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;