Eingebettetes Sass ist Live

Veröffentlicht am 1. Februar 2022 von Natalie Weizenbaum

Nach mehreren Jahren der Planung und Entwicklung freue ich mich, endlich die stabile Version von Embedded Dart Sass zusammen mit seinem ersten offiziellen Wrapper, dem sass-embedded-Paket, das ab sofort auf npm verfügbar ist, bekannt zu geben!

Embedded Sass ist eine fortlaufende Anstrengung, eine hochperformante Sass-Bibliothek für möglichst viele verschiedene Sprachen verfügbar zu machen, beginnend mit Node.js. Obwohl Node.js bereits Zugriff auf das reineJS-sass-Paket hat, schränkt die Natur von JavaScript inhärent ein, wie schnell dieses Paket große Sass-Dateien verarbeiten kann, insbesondere im asynchronen Modus. Wir erwarten, dass sass-embedded ein großer Vorteil für Entwickler sein wird, für die die Kompilierungsgeschwindigkeit ein Anliegen ist, insbesondere für die verbleibenden Benutzer von node-sass, für die die Leistung ein Hauptgrund war, Dart Sass zu vermeiden.

Das sass-embedded-Paket unterstützt die neue JS-API sowie die Legacy-API mit Ausnahme einiger kosmetischer Optionen vollständig. Sie können es als Drop-in-Ersatz für das sass-Paket verwenden, und es sollte mit allen gleichen Build-Plugins und Bibliotheken funktionieren. Beachten Sie, dass sass-embedded im *asynchronen* Modus etwas schneller ist als im synchronen Modus (während das sass-Paket im synchronen Modus schneller war). Für umfangreiche Sass-Dateien wird das Ausführen von sass-embedded in beiden Modi im Allgemeinen wesentlich schneller sein als sass.

Um die Verwirrung darüber zu begrenzen, welche Version welches Pakets welche Funktion unterstützt, hat das sass-embedded-Paket immer die gleiche Version wie das sass-Paket. Wenn neue Funktionen zur JS-API hinzugefügt werden, werden sie gleichzeitig in beiden Paketen unterstützt, und wenn neue Sprachfunktionen zu Sass hinzugefügt werden, werden sie immer sofort in einer neuen sass-embedded-Veröffentlichung enthalten sein.

Wie es funktioniertWie es funktioniert Permalink

Embedded Sass besteht aus drei Teilen

  1. Der Compiler, eine Dart-Executable, die Dart Sass umschließt und die eigentliche Schwerstarbeit beim Parsen und Kompilieren der Dateien leistet. Dart Native-Executables sind im Allgemeinen viel schneller als JavaScript, daher ist die Verwendung dieser für die rechenintensive Arbeit der Stylesheet-Auswertung dort, wo Embedded Sass seine Geschwindigkeit bezieht.

  2. Der Host, eine Bibliothek in jeder Sprache (in diesem Fall JavaScript), die eine brauchbare Endbenutzer-API zur Aufrufung des Compilers bereitstellt. Der Host bietet den Aufrufern Konfigurationsoptionen, einschließlich der Möglichkeit, benutzerdefinierte Importer und Sass-Funktionen zu definieren, die von der Kompilierung verwendet werden.

  3. Das Protokoll, eine auf Protocol Buffers basierende Spezifikation, wie Host und Compiler miteinander kommunizieren. Diese Kommunikation erfolgt über die Standard-Eingabe- und Ausgabeströme der Compiler-Executable, die vom Host aufgerufen wird, um jede Kompilierung durchzuführen.

Andere SprachenAndere Sprachen Permalink

Embedded Sass wurde teilweise als Möglichkeit konzipiert, Sprachen neben JavaScript den vollen Umfang der Sass-Kompilierung mit benutzerdefinierten Importern und Funktionen zu ermöglichen, ähnlich wie C++-Wrapper für LibSass in der Vergangenheit funktionierten. Wir hoffen, dass Community-Mitglieder dieses Protokoll verwenden werden, um eingebettete Hosts für viele andere beliebte Frontend-Sprachen zu implementieren. Wenn Sie dies tun, senden Sie uns eine Nachricht auf Twitter oder Gitter und wir werden sie auf dieser Website verlinken!