Netbeans und Dart-Sass (unter Windows)

In Netbeans werden die CSS-Precompiler Sass und Less unterstützt. Zum Aufruf wird der Precompiler Sass über die Commandline mit einigen internen Optionen aufgerufen, die in Netbeans eingebaut wurden und auf den alten Ruby Sass Compiler beruhten.

Dies funktionierte bislang auch tadelos.

Leider wird Ruby Sass schon seit einiger Zeit nicht weiter entwickelt. Stattdessen gibt es eine neue Umsetzung in Form von Dart Sass (GitHub-Projekt: sass/dart-sass). Bei der Compilierung von neueren Sass-Anweisungen mit dem alten Ruby Sass Compiler kommt es daher dann auch zu Warn- oder Fehlermeldungen.
Möchte man beispielsweise die Sass-Anweisungen von Bootstrap 4 compilieren, steigt der Ruby Sass Compiler mit Fehlermeldungen aus.

Es liegt daher nahe, dass man auf Dart Sass aktualisiert.

Hierzu lädt man sich die passende Binary aus dem GitHub-Repository, entpackt sie und speichert das entpackte dart-sass Verzeichnis an geeigneter Stelle (zum Beispiel unter Windows in C:\Program Files\dart-sass\ ).

In Netbeans gibt man danach unter Optionen >> HTML/JS als SASS-Path den Pfad zur BAT-Datei an: C:\Program Files\dart-sass\sass.bat

 

Normalerweise sollte dies reichen… Tut es aber in den aktuellen Versionen von Netbeans (bis 11.1) noch nicht. In Netbeans wird der Sass-Compiler mit den Optionen von Ruby Sass aufgerufen. Diese sind allerdings nicht identisch zu denen von Dart Sass und führen daher zu Fehlermeldungen.

Insbesondere wird die Angabe der Option „cache-location“ bemängelt. Diese Option setzt Netbeans selbstständig beim Aufruf. Als Argument übergibt er zudem einen Pfad, der zu einem Verzeichnis in der aktuellen Netbeans-Installation verweist.
In diesem Beitrag von Luke Briner wird genauer beschrieben, was das Problem ist und wie es gelöst werden kann: Modifying SASS options when building from NetBeans .

Kurz aus dem Beitrag zusammengefasst:

In der BAT-Datei befinden sich folgende Anweisungen:

set SCRIPTPATH=%~dp0
set arguments=%*
"%SCRIPTPATH%\src\dart.exe" "-Dversion=1.22.9" "%SCRIPTPATH%\src\sass.dart.snapshot" %arguments%

Diese werden geändert und ergänzt in folgende (die drei fett markierten set-Anweisungen nach dem Argument kommen hinzu):

set SCRIPTPATH=%~dp0
set arguments=%*
set arguments=%arguments:--cache-location =%
set arguments=%arguments:C:\Netbeans\..\sass-compiler =%
set arguments=%arguments:--debug-info =%
"%SCRIPTPATH%\src\dart.exe" "-Dversion=1.22.9" "%SCRIPTPATH%\src\sass.dart.snapshot" %arguments%

Die Angabe C:\Netbeans\..\sass-compiler ist hier nur ein Platzhalter für den Pfad zu dem Netbeans-Verzeichnis. Sie wird je nach Installation unterschiedlich sein. Man erhält den Pfad aus obigen Fehlermeldung.

Es bleibt zu hoffen, dass dieser Bug in Netbeans bald behoben wird. Der Bug, bzw. die entsprechenden anderen dazu gehörigen Issues in dieser Sache sind bereits seit einigen Monaten im Issue-Tracker von Apache.

Meiner Meinung nach wäre es eine denkbare und einfach umsetzbare Alternative, wenn Netbeans in dem Fall darauf verzichtet Optionen für den Compiler zu ergänzen, wenn der Bearbeiter in den Properties des Projektes  eigene Compiler Optionen angibt.