Wie verwenden von Winkel 4 mit SASS
Beginne ich mein erstes Projekt mit Angular4
und sass
und ich werde versuchen es herauszufinden, wie die Arbeit mit sass
den richtigen Weg. Ich bin mit angular-cli
und bereits die Standard-Formatvorlage zu verwenden scss
syntax. Ich habe auch bereits definiert, die Zusammenstellung, etc.
Jedoch sah ich, dass wir eine option styleUrls auf die Komponente, wo wir in einigen Fällen definieren Sie Formatvorlagen, die nur in dieser Komponente.
Das problem ist, wenn ich einen scss
- Datei in das component
es ist nicht die Erzeugung eigenen .css
Datei weder in den Haupt - .css
- Datei, generiert aus der root-Projekt.
Also im Grunde habe ich ein Projekt-Struktur wie diese:
app
app.module.ts
app.routing.ts
home
home.component.ts
home.html
_home.scss
client
client.component.ts
client.html
_client.scss
scss
_imports.scss
colors
_colors.scss
ui
_button.scss
_table.scss
//.. more folder and files
styles.scss
index.html
Und ich möchte in der Lage sein, die wichtigsten css
Stil innerhalb der styles.scss
Datei, die eingefügt wird, in der index.html
Datei muss später auf dem build-Prozess. Aber auch in der Lage sein zum generieren eines einzigen css
- Datei für jede Komponente, die ich habe, z.B. home
und client
, und benutzen Sie nur noch die css
Stilen innerhalb Ihrer eigenen component
.
Ist es möglich, es zu tun? Ich habe versucht, es zu tun und ich fand keine andere Ressource dazu!
Ja, Sie sind, aber nur die wichtigsten Stil-Datei
style.css
. Aber zum Beispiel, die Dateien zu Hause.scss und client.scss nie kompilieren .css und deswegen nie injizieren.ungerade ist, können Sie neu installieren Sie Ihre Knoten-Module. Vielleicht eine der Lader ist Durcheinander
Hier wissen Sie, wie Sie in der Regel die Dinge funktionieren, und Sie tun das gleiche. Aber für einige Grund Sie funktionieren. Sie Hinzugefügt
styles.scss
zu .angular-cli
noch in der letzten build seine nicht immer spiegelt sich in Ihrer Seite ?InformationsquelleAutor celsomtrindade | 2017-06-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie suchen, ist die "import-Direktive:
Diese importiert die CSS aus den anderen CSS-Dateien in der Haupt-CSS-Datei, hängt den Inhalt jeder Datei auf die Haupt-Datei, basierend auf der Reihenfolge, die Sie wählen, eingefügt.
Beachten Sie, dass Sie nicht müssen die
.scss
Datei-Erweiterung, da SASS handhaben, die automatisch, und Sie können einfach importieren Sie mit@import "file"
. Und Sie brauchen auch nicht angeben, jede Datei mit einem unabhängigen importieren, wie können Sie kombinieren Sie alle in eine einzelne importieren:Können Sie auch tun, verschachtelten Importe durch die Angabe der
@import
in einem Selektor:Hoffe, das hilft! 🙂
Ich entschuldige mich. Es gibt jedoch keinen Grund, warum Sie sollten nicht kompilieren. Verweisen Sie einfach auf Sie als
/app/home/_home.scss
und/app/client/_client.scss
beziehungsweise. Sie können feststellen, dass Sie brauchen, Ihren cache zu löschen; halten SieSHIFT
beim klicken auf das Symbol "aktualisieren".Sie sind immer kompiliert, aber es injiziert Kopf mit style-Attribut nur dann, wenn die Komponente verwendet wird.
InformationsquelleAutor Obsidian Age
In einer Eckigen 4.4+ mit ng-cli, müssen Sie nur ändern Sie die folgenden Einstellungen in
.angular-cli.json
und in jeder Komponente, wenn nötig, zu ändern
.css
zu.scss
href="https://stackoverflow.com/a/41541042/2408013">stackoverflow.com/a/41541042/2408013
InformationsquelleAutor creep3007
Können Sie angeben, scss, wenn Sie erstellen Projekt.
Sorry für verpasste. Ist Ihre styleUrls von Zuhause Komponente sieht aus wie
styleUrls: ['./_home.scss']
?InformationsquelleAutor rch850
ich hatte das gleiche Problem, ich habe eine leftnav Komponente und das scss zu sein schien nie kompiliert , ich habe versucht alle oben aber nicht funktioniert , und ich versuchte, Sie zu creat neue app mit ng neu .... aber danach habe ich es behoben, indem Sie meinen Gedanken 😀
scheint, wie wir nicht verwenden
same component selector
innerhalb seiner verwandten .scss-Dateiaber stattdessen sollten wir nutzen, eine Umhüllung div mit der passenden className , und verwenden Sie diese .className als eine Wurzel wickeln .scss Datei-Inhalts.
lassen Sie mich demonstrieren, das ist meine app:
und in der alten leftnav.scss
und innen app.html
und wie ich es behoben ! wie ich schon sagte, indem ein wrapping div mit dem Klassennamen
.leftnav
innenleftnav.html
und nutzen Sie als root die Verpackung von meinem leftnav.scss statt-Komponenten-Selektoralso mein neuer
- und es funktioniert !
InformationsquelleAutor Moath.Omar
Wenn Sie bereits einen wokring Projekt
ng new my-sassy-app --style=scss
nicht helfen, so müssen Sieng set defaults.styleExt scss
diese änderungenangular.cli.json
Datei alsSich jetzt ändern, die bereits vorhanden
css
Dateien zuscss
Erweiterung, die Sie sollten sehen, dassscss
funktioniert nun.Vergessen Sie nicht, ändern Sie diecss
Erweiterungen in der Komponente definations zuscss
Die Quelle
InformationsquelleAutor Black Mamba