Nach the docs@import 'compass'
wird CSS3, Typografie und Dienstprogramme Module importieren. Diese Module fügen nichts in Ihre Ausgabe-CSS ein, sie enthalten nur Mixins.
Durch Beschränkung des Imports auf ein bestimmtes Modul oder Submodul (d. H. @import 'compass/css3/image'
) reduzieren Sie die Zeit, die zum Kompilieren Ihrer SASS-Dateien in CSS benötigt wird.
Zum Beispiel können wir zwei Dateien erstellen.
// all.scss
@import "compass";
.candy {
@include background(linear-gradient(top left, #333, #0c0));
}
// module.scss
@import "compass/css3/images";
.candy {
@include background(linear-gradient(top left, #333, #0c0));
}
Wenn wir sie kompilieren (compass compile sass/FILENAME.scss
), wird Ergebnis CSS identisch sein:
.candy {
background: -webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0%, #333333), color-stop(100%, #00cc00));
background: -webkit-linear-gradient(top left, #333333, #00cc00);
background: -moz-linear-gradient(top left, #333333, #00cc00);
background: -o-linear-gradient(top left, #333333, #00cc00);
background: linear-gradient(top left, #333333, #00cc00);
}
Jetzt können --time
Argument für die Erstellung Befehl hinzufügen und die Ergebnisse vergleichen. Für meine Maschine dauerte es 1,516 s, um all.css
vs nur 0,108 s für module.css
zu kompilieren.
Könnten Sie das näher erläutern? "Diese Module werden nichts in Ausgabe-CSS injizieren" und "Sie werden die Zeit reduzieren, die benötigt wird, um Ihre CSS in CSS zu kompilieren". Ich verstehe es nicht. Du hast gesagt, dass es nichts injiziert, aber dann, dass ein Nein begrenzt. von Modulen reduziert die Kompilierzeit. Bedeutet Kompilierung nicht, dass das Modul in den Ausgang injiziert wird? – wryrych
@WojtekRyrych Siehe aktualisierte Antwort. – Pavlo
OK, ich sehe jetzt. So bezieht '@ import' nur Module, aber es ist das' @ include', das Code in Ausgabe-CSS injiziert. Danke für die Klarstellung! – wryrych