Wie kann man Sprite -Quelldateien aus dem Build aus den Kompass -erzeugten Sprites im Mittelsmann auslassen?
-
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?
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 ignore
es.
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;