Deprecation [plugin angular-sass]

powershell

[WARNING] Deprecation [plugin angular-sass]
node_modules/bootstrap/scss/_functions.scss:11:29:
11 │ @if $prev-num == null or unit($num) == "%" or unit($prev-num)

Global built-in functions are deprecated and will be removed in Dart Sass 3.0.0. Use math.unit instead.
icon angular gradient alt05 crop

Sass Compiler Warnings

Wer seine Angular App in den letzten Tagen und Wochen lokal mit dem Angular CLI Befehl…

ng serve

…gestartet hat und dazu diverse .scss Dateien oder das CSS-Framework Bootstrap integriert hat, ist auf o.g. Meldung gestoßen. Für alle die nicht weiterlesen wollen, hier ein einfacher Lösungsansatz um die warnings zu unterdrücken. Füge folgendes deiner angular.json im Build Block hinzu:

angular.json

"architect": {
        "build": {
"options": {
            "stylePreprocessorOptions": {
              "sass": {
                "silenceDeprecations": [
                  "mixed-decls",
                  "color-functions",
                  "global-builtin",
                  "import"
                ]
              }
            },

Breaking Changes

Die Meldung des Sass-Compilers bezieht sich auf die Abschaffung der @import-Regel und der globalen Built-in-Funktionen. Warum wird @import abgeschafft? Die @import-Regel in Sass hatte einige Nachteile:

  • Sie machte alle Variablen, Mixins und Funktionen global zugänglich, was zu Namenskonflikten führen konnte.
  • Mehrfaches Importieren derselben Datei führte zu längeren Kompilierungszeiten und aufgeblähtem CSS.
  • Es war schwer nachvollziehbar, woher bestimmte Variablen oder Funktionen stammen.

Um diese Probleme zu lösen, hat Sass das Modulsystem eingeführt, dass die neuen Regeln @use und @forward verwendet. Diese bieten eine bessere Modularität, Namespacing und verhindern doppelte CSS-Ausgaben.

Globale Built-in-Funktionen Funktionen wie mix(), die früher global verfügbar waren, sind jetzt in spezifischen Modulen wie sass:math oder sass:string organisiert. Das bedeutet, dass du sie explizit importieren musst, um sie zu verwenden, was Konflikte mit CSS-Funktionen vermeidet.

Weitere Infos erhältst du in der offiziellen Dokumentation von Sass.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen