2015-01-16 18 views
9

Ich verstehe, dass es am besten ist, SASS/SCSS Teiltage ohne den führenden Unterstrich zu importieren; z.B.Sass @ Import mit führenden Unterstrich

@import 'normalize-scss/normalize'; // this imports ./normalize-scss/_normalize.scss

Meine Frage für nerdy Vollständigkeit, gibt es consequenties, wenn die Datei den Unterstrich importiert verwendet?

@import 'normalize-scss/_normalize';

+4

Was passiert, wenn Sie zwei Dateien '__test.scss' und' _test.scss' und Sie '@import„_test“' –

Antwort

12

Nr Wenn Ihre Datei _foo.scss ist, alle diese Einfuhren haben identische Ergebnisse, solange Sie haben noch keine mehrdeutigen Dateinamen (Nebenwirkungen abgesehen, die existieren könnte):

@import "foo"; 
@import "foo.scss"; 
@import "_foo"; 
@import "_foo.scss"; 

Dateien mit dem gleichen Namen, aber unterschiedlichen Erweiterung

Das einzige Mal, eine Erweiterung notwendig ist, ist, wenn Sie sowohl _foo.scss und _foo.sass in der gleichen Suchpfad haben. Sie werden die folgende Fehlermeldung erhalten, wenn Sie nicht angeben, welche:

error sass/test.scss (Line 7: It's not clear which file to import for '@import "test/bar"'. 
Candidates: 
    test/_bar.sass 
    test/_bar.scss 
Please delete or rename all but one of these files. 
) 

Dateien mit dem gleichen Namen, aber einer mit einem Unterstrich

vorangestellt wird Wenn Sie sowohl foo.scss und _foo haben. scss, dann wird foo.scss Vorrang haben. Wenn Sie stattdessen _foo.scss möchten, müssen Sie Ihrer import-Anweisung den Unterstrich hinzufügen.

@import "test/_foo"; 

Sass wird nörgeln Sie mit einem ganz gleich jedes Mal, wenn Sie was Aussage Ihrer Import speichern Warnung wie folgt aussieht:

WARNING: In /path/to/test: 
    There are multiple files that match the name "bar.scss": 
    _bar.scss 
    bar.scss 
+0

Wenn standardmäßig der Motor prüft auf '_foo.scss', sicherlich wäre es am schnellsten,' @import "foo"; 'zu verwenden. Kostbare Millisekunden! –

+2

Was für eine sehr merkwürdige Designentscheidung - die Dateien als gleich zu behandeln. – dKen

0

Wenn Sie einen Unterstrich an den Anfang des Dateinamens hinzufügen, Sass ‚gewonnen t kompilieren Sie es. Wenn Sie also colors.scss nicht nach colors.css kompilieren möchten, benennen Sie stattdessen die Datei _colors.scss. Dateien, die auf diese Weise benannt werden, werden in der Sass-Terminologie als Teilzeichen bezeichnet.

Mehr über Import-Funktion in Sass Sie here finden