wie man Änderungen im gesamten Verzeichnis / Ordner mit vielen Sass-Dateien beobachtet


77

Wie kann ich Änderungen im gesamten Verzeichnis mit vielen Sass-Dateien verfolgen? Ich verwende den folgenden Befehl, um Änderungen in sass zu beobachten

Datei:

sass --watch style.scss:style.css

Aber wie man Änderungen im gesamten Verzeichnis / Ordner mit vielen Sass-Dateien beobachtet.


5
Hat Ihnen eine der Antworten hier geholfen?
— TheCarver

Antworten:


95

Verwenden Sie einfach den Befehl sass --watch <input folder>:<output folder>wie folgt:

$ ls -l
css/ sass/
$ sass --watch sass:css

Wo <input folder>enthält die Sass-Dateien und <output folder>das hostet die generierten CSS-Dateien.


Wenn ich einen sassOrdner mit 20 Unterverzeichnissen und insgesamt 200 scssDateien darin habe, welche Auswirkungen hätte sass --watchdies in diesem Fall auf die CPU- / Speicherressourcen?
— WM

@piouPioum, ich habe den von Ihnen erwähnten Befehl ausprobiert, der die Änderung erkennt, aber nicht schreibt.
— Vivek

Es heißt, dass keine Option mit dem Namen "watch" gefunden werden konnte. . Ich weiß nicht, was ich tun soll, ich kann nicht glauben, dass ich keinen Watcher ausführen kann, ohne externe Programme zu installieren oder einen Task Runner zu verwenden
— Cristian Traìna

28

Erweitern Sie die Antwort von piouPiouM ein wenig:

  • Ausgabedateien werden mit denselben Namen wie Eingabedateien erstellt, außer mit .css.
  • <input folder>und <output folder>kann das gleiche sein.
  • Beide Ordner können das aktuelle Arbeitsverzeichnis sein, daher gilt Folgendes:

    $ sass --watch .:.


11

Gehen Sie zu Ihrem Terminal und gehen Sie zu Ihrem Ordner. Dann schreiben Sie:

 sass --watch .

Dadurch werden alle Sass-Dateien überwacht und in CSS-Dateien mit demselben Namen konvertiert. Sie können es auch so machen:

sass --watch ~/user/youUser/workspace/project/styles/

Ich hoffe das kann dir helfen.


10

Am Ende habe ich das ohne Grunt oder Sass-watch gemacht:

npm install -g watch
watch "sass assets/app.scss assets/dist/app.css" assets/css

1
Installieren Sie sass in Ihrem Arbeitsverzeichnis? Wenn es auf Systemebene installiert ist, muss ich den gesamten Pfad eingeben? Also ...sass --watch /Users/estout/Documents/GIT/project/:/Users/estout/Documents/GIT/project/
— erwstout

@buschschwick: Ja, Sie installieren es auf Systemebene. Sie geben entweder jedes Mal die vollständige Adresse ein, wie Sie es cd /Users/estout/Documents/GIT/project/$ sass --watch .:.
— getan

5

Wenn Sie sich in Ihrem aktuellen Ordner befinden, gehen Sie wie folgt vor, um ihn anzusehen.

F:\sass tutorial>sass --watch ./:./

3

Nur für den Fall, dass 2018 jemand mit diesem Problem
konfrontiert wird: Die sass-Website bezieht sich auf Ruby Sass , das veraltet ist . und wie jetzt (Mai 2018), wenn Sie Dart Sass über npm installieren , unterstützt es keinen --watchBefehl

Was zu tun ist:
Sie müssen node-sassglobal installieren , wie:

npm install node-sass -g

Starten Sie anschließend die Befehlszeile neu und verwenden Sie den folgenden Code:

node-sass --watch scss/styles.scss css/styles.css

um deine Scass-Dateien in CSS zu kompilieren.
Grundsätzlich unterstützt Node-Sass --watchBefehle und wir verwenden diese, um unsere SCSS-Codes in reguläre CSS-Dateien zu kompilieren.

und nur für den Fall, dass Sie beim ersten Speichern Ihrer .scss-Datei eine solche Fehlermeldung erhalten:

{
  "status": 3,
  "message": "File to read not found or unreadable: yourdirectory/scss/styles.scss",
  "formatted": "Internal Error: File to read not found or unreadable: yourdirectory/scss/styles.scss\n"
}

Was Sie tun müssen, ist es erneut zu speichern, es wird richtig funktionieren!


2

Sie können eine Sass-Datei erstellen, die den Rest der Dateien enthält, und diese Datei dann einfach ansehen.

Schauen Sie sich alternativ Grunt und das sehr gute Grunt-Contrib-Kompass- Plugin an


@matsko ja, das ist in der Tat, was der grunt watchtut
— Kumarharsh


Sie möchten keine einzige SASS-Datei für mein aktuelles Projekt. Dies ist ein schlechter Vorschlag / eine schlechte Antwort. Viel einfacher ist es, SASS zu bitten, ein Verzeichnis anzusehen, das andere in ihren Antworten angegeben haben.
— TheCarver

2
Sie können eine Master - SASS - Datei für das Projekt wollen, die alle Komponenten SASS Dateien des Kindes enthält (Blick darauf , wie Bootstrap tut es). Es gibt auch eine große Gefahr bei der aktuell akzeptierten Antwort, dass alle Sass-Dateien kompiliert und eine CSS-Datei für jede Sass-Datei ausgegeben wird (Partials ausgeschlossen). Das ist vielleicht nicht das, was Sie wollen.
— Kumarharsh


0

Sie können sass so einstellen, dass alle .scss-Dateien (in meinem Fall habe ich mehrere .scss-Dateien im Ordner src / static) kompiliert werden, aber bevor Sie sie global installieren:

npm i -g sass

Gehen Sie dann zum Projektordner und geben Sie den folgenden Befehl ein:

sass --watch $(pwd)/src/static 

Sie können es auch in ein npm-Skript in package.json einbinden, wie z

 "scripts": {
    "sass:watch": "sass --watch $(pwd)/src/static"
    }
    

und führen Sie es mit diesem Befehl aus:

npm run sass:watch
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.