Usando sprites generados por Compass en Middleman, ¿cómo dejar de lado los archivos de fuente de sprite de la compilación?

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

  •  27-10-2019
  •  | 
  •  

Pregunta

Usando Middleman 2.0.14, uso las funciones de Compass para generar algunos sprites en mi archivo CSS con:

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

Esto toma todos los archivos de source/images/companies/*.png y genera un solo archivo de sprite source/images/companies-s45e421528f.png. Hasta aquí todo bien.

Cuando hago un middleman build, copia obedientemente sobre el archivo de imagen generado, pero también incluye el companies/*.png archivos.

No es gran cosa tener un script de implementación Eliminar estos archivos adicionales, pero me pregunto si hay una opción que me falta en algún lugar. (¿O tal vez el 'casi listo para lanzar mm 3.x' tiene una solución?) Tal vez debería poner el companies/*.png archivos en otro lugar del árbol de origen?

¿Fue útil?

Solución

Sugiero limpiarlos con un guión (o un after_build gancho). Este es el comportamiento predeterminado de Compass, para generar imágenes en el modo de desarrollo, y requeriría que se alteren algunos parches de mono (por ahora, la beta Compass tiene acceso directo a estas opciones).

En 3.0, podrías probar:

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

Pero no estoy seguro de que Compass no se ahogara con eso.

Otros consejos

Usando ignore ralentizó la construcción significativamente para mí, así que preferí poner los activos de Sprite fuera de source/.

De esta manera, los sprites se generan bajo source/sprites/, build/sprites y las fuentes están excluidas sin ignoreing.

Aquí está cómo configurar esto:

# 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;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top