Wie kann man Sprite -Quelldateien aus dem Build aus den Kompass -erzeugten Sprites im Mittelsmann auslassen?

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

  •  27-10-2019
  •  | 
  •  

Frage

Mit Middleman 2.0.14 verwende ich die Kompassfunktionen, um einige Sprites in meiner CSS -Datei zu generieren mit:

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

Dies enthält alle Dateien aus source/images/companies/*.png und generiert eine einzelne Sprite -Datei source/images/companies-s45e421528f.png. So weit, ist es gut.

Wenn ich a mache middleman build, es kopiert pflichtbewusst die generierte Bilddatei, enthält aber auch die companies/*.png Dateien.

Es ist nicht eine große Sache, ein Bereitstellungsskript zu haben, das diese zusätzlichen Dateien entfernen, aber ich frage mich, ob es eine Option gibt, die mir irgendwo fehlt. (Oder vielleicht hat die "fast bereit bereit, MM 3.x" eine Lösung zu haben?) Vielleicht sollte ich das setzen companies/*.png Dateien woanders im Quellbaum?

War es hilfreich?

Lösung

Ich schlage vor, sie mit einem Skript aufzuräumen (oder einem after_build Haken). Dies ist das Standardverhalten von Kompass, um Bilder im Entwicklungsmodus zu generieren, und es würde einige Affenpatching erfordern, um sich zu ändern (vorerst hat die Kompass -Beta direkten Zugriff auf diese Optionen).

In 3.0 könnten Sie versuchen:

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

Aber ich bin mir nicht sicher, ob Compass das nicht ersticken würde.

Andere Tipps

Verwendung ignore verlangsamte den Build für mich erheblich, also zog ich es vor, die Sprite -Vermögenswerte draußen zu platzieren source/.

Auf diese Weise werden Sprites unter erzeugt unter source/sprites/, build/sprites und die Quellen sind ohne ausgeschlossen ignorees.

Hier erfahren Sie, wie Sie dies einrichten:

# 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;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top