Utilizzando sprite generate dalla bussola a Middleman, come tralasciare i file di origine sprite dalla build?
-
27-10-2019 - |
Domanda
Usando Middleman 2.0.14, utilizzo le funzionalità della bussola per generare alcuni sprite nel mio file CSS con:
@import "companies/*.png";
@include all-companies-sprites;
Questo prende tutti i file da source/images/companies/*.png
e genera un singolo file sprite source/images/companies-s45e421528f.png
. Fin qui tutto bene.
Quando faccio un middleman build
, copia diligentemente sul file di immagine generato, ma include anche il companies/*.png
File.
Non è un grosso problema che uno script di distribuzione rimuova questi file extra, ma mi chiedo se ci sia un'opzione che mi manca da qualche parte? (O forse il "quasi pronto a rilasciare mm 3.x" ha una soluzione?) Forse dovrei mettere il companies/*.png
file da qualche altra parte nell'albero di origine?
Soluzione
Suggerisco di ripulirli con una sceneggiatura (o un after_build
gancio). Questo è il comportamento predefinito della bussola, per generare immagini in modalità di sviluppo e richiederebbe un po 'di patch di scimmia da modificare (per ora, la beta della bussola ha accesso diretto a queste opzioni).
In 3.0, potresti provare:
configure :build do
ignore "source/images/companies/*.png"
end
Ma non sono sicuro che Compass non lo soffocerebbe.
Altri suggerimenti
Usando ignore
rallentato significativamente la build per me, quindi ho preferito mettere fuori le risorse sprite source/
.
In questo modo, gli sprite sono generati sotto source/sprites/
, build/sprites
e le fonti sono escluse senza ignore
ing.
Ecco come impostare questo:
# 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;