Warum in scss / css vor den Dateinamen "_" oder "_" setzen?

147

Warum _in scss vor den Dateinamen setzen?

_filename.scss- Warum braucht es _?

Niko_D
quelle

Antworten:

147

Der _ (Unterstrich) ist ein Teil für scss. Das bedeutet, dass das Stylesheet in ein Haupt-Stylesheet importiert wird (@import), dh styles.scss. Der Vorteil bei der Verwendung von Partials besteht darin, dass Sie Ihren Code mit vielen Dateien organisieren können und alles in einer einzigen Datei kompiliert wird.

Fabian Parra
quelle
3
aber import '_file';und import '_file';macht das gleiche richtig?
Tom10271
20
@aokaddaoc scheint, als hätten Sie die gleiche Codezeile geschrieben :)
Amit
20
Oh, danke, dass du auf meinen Fehler hingewiesen hast. "aber import '_file';und import 'file';macht das gleiche richtig?"
Tom10271
5
Wenn ich meine Dateien so strukturiere, dass ich immer nur eine einzige Datei an meinen Compiler / Präprozessor sende, warum ist es dann wichtig, wenn meinen Dateien ein Präfix vorangestellt wird _? Ich denke darüber nach, den Unterstrich aus meinen Dateinamen zu entfernen. Ob eine Sass-Datei ein Teil ist (dh ein importierbarer Code), hängt von ihrem Speicherort in der Architektur Ihres Projekts ab und nicht davon, wie die Datei benannt ist.
ESR
1
@ESR: Einverstanden, diese Funktion fühlt sich in einer modernen Webentwicklungsumgebung etwas veraltet an. Sie brauchen das _s definitiv nicht, wenn Sie Ihr Projekt in einer vernünftigen Weise strukturiert haben.
Chris Jaynes
55

Eine Sass-Datei, die mit einem Unterstrich beginnt, ist ein Teil. Dies ist eine gute Möglichkeit, Ihre Stile in logische Abschnitte zu unterteilen. Diese Dateien werden bei der Kompilierung alle zusammengeführt, wenn Sie sie verwenden @import.

Aus dem Sass-Sprachführer:

Sie können teilweise Sass-Dateien erstellen, die kleine CSS-Schnipsel enthalten, die Sie in andere Sass-Dateien aufnehmen können. Dies ist eine großartige Möglichkeit, Ihr CSS zu modularisieren und die Wartung zu vereinfachen. Ein Teil ist einfach eine Sass-Datei mit einem führenden Unterstrich. Sie könnten es so etwas wie _partial.scss nennen. Der Unterstrich weist Sass darauf hin, dass die Datei nur eine Teildatei ist und nicht in eine CSS-Datei generiert werden sollte. Sass-Partials werden mit der @ import-Direktive verwendet.

http://sass-lang.com/guide

cameronjonesweb
quelle
13

Wenn Sie "_" vor dem Dateinamen einfügen, wird es nicht in CSS generiert, es sei denn, Sie importieren es in eine andere Sass-Datei, die nicht teilweise ist.

Angenommen, Ihre Ordnerstruktur ist so

/scss
 style.scss
 _list.scss
/css

wenn Sie den Befehl ausführen

sass --watch scss:css

Es werden nur die Dateien style.css und style.css.map erstellt. Der sass-Compiler lässt _list.scss weg, ohne den Inhalt in eine CSS-Datei zu konvertieren.

/scss
 style.scss
 _list.scss
/css
 style.css
 style.css.map

Die einzige Möglichkeit, Partials zu verwenden, besteht darin, sie mit in eine andere .scss-Datei zu importieren

@import 'list.scss';

Wenn Sie das '_' vor _list.scss entfernen, lautet das Ergebnis des Befehls

/scss
 style.scss
 list.scss
/css
 style.css
 style.css.map
 list.css
 list.css.map

Der Hauptzweck der Verwendung von Partials besteht darin, unseren CSS-Code in mehrere Teile zu zerlegen, die einfacher zu warten sind. Hoffe das hilft. Vielen Dank.

dmcshehan
quelle
2
Das ist die richtige Antwort. Aber Sie haben auch den Sonderfall von _index.scss nicht erwähnt: sass-lang.com/documentation/at-rules/import#index-files
tiffon
11

Dateien mit _ (Unterstrich) werden vom Compiler ignoriert. Alle diese Dateien werden jedoch in eine einzelne SCSS-Hauptdatei (dh styles.scss) importiert, bei der es sich tatsächlich um die kompilierte Datei handelt (der Name enthält kein _ (Unterstrich)).

Das endgültige Ziel besteht darin, nur eine SCSS-Datei zu kompilieren und dadurch nur eine CSS-Datei zu haben, was verschiedene Vorteile hat.

Tahi Reu
quelle