Libsass: 3.5.3 Regression: Importieren von `.css`-Dateien schlägt fehl statt Warnung (wie in den Versionshinweisen angegeben)

Erstellt am 24. Apr. 2018  ·  6Kommentare  ·  Quelle: sass/libsass

Ursprünglich hier gemeldet: https://github.com/sass/libsass-python/issues/245

input.scss

<strong i="8">@import</strong> 'cssfile';

cssfile.css

a { b: c; }

libsass 3.5.2 (über libsass-python )

$ pysassc --version
pysassc 0.14.2 (sass/libsass 3.5.2)
$ pysassc input.scss 
a {
  b: c; }

libsass 3.5.3 (über libsass-python )

$ pysassc --version
pysassc 0.14.3 (sass/libsass 3.5.3)
$ pysassc input.scss 
pysassc: error: Error: File to import not found or unreadable: cssfile.
        on line 1 of input.scss
>> <strong i="20">@import</strong> 'cssfile';

   ^

Ich erwarte die Warnung in den Versionshinweisen

Hilfreichster Kommentar

Ich bin sehr verwirrt über die Abschreibung, nirgendwo scheint klar:

Die Veraltungswarnung wird in 3.6.0 entfernt.

vs.

Das Einschließen von .css-Dateien mit @import ist ein nicht standardmäßiges Verhalten, das in zukünftigen Versionen von LibSass entfernt wird. Verwenden Sie einen benutzerdefinierten Importer, um dieses Verhalten beizubehalten. Lesen Sie in Ihrer Implementierungsdokumentation nach, wie Sie einen benutzerdefinierten Importer erstellen.

Wird die Abschreibungswarnung in 3.6.0 entfernt und sass_option_push_import_extension funktioniert weiterhin oder wird die Funktionalität zum Importieren von CSS komplett entfernt?

Persönlich würde ich sagen, dass es ein großer Rückschritt für libsass wäre, die Unterstützung von CSS-Importen einzustellen, dies bedeutet entweder:

  • Bibliotheken, die libsass verwenden, müssen jeweils ihre eigenen benutzerdefinierten Importer implementieren, um CSS zu unterstützen
  • oder der durchschnittliche Benutzer (der keine Ahnung von benutzerdefinierten Importeuren oder deren Implementierung hat) verliert das Recht, CSS in seinen Sass zu importieren, wodurch alle Vorteile der Überprüfung und Komprimierung von CSS verloren gehen.

Ich benutze kein Rubin, ich werde es nicht tun und es ist mir egal, was es tut und was nicht. Können wir bitte sass_option_push_import_extension behalten.

Alle 6 Kommentare

Ich denke, das kann geschlossen werden, genau das wurde von #1963 erwartet.

Persönlich denke ich, dass es zuerst über eine Warnung hätte abgeschrieben werden sollen und eher ein Minor-Release als einen Patch verursacht haben, aber jetzt ist es zu spät.

Es tut uns leid, dass dies eine unbeabsichtigte Breaking Change für diese Patch-Version war.

Ich bevorzuge es, mit Änderungen fortzufahren und die Versionshinweise zu aktualisieren.

Sie müssen die sass_option_push_import_extension API verwenden, um .css Importe wie in https://github.com/sass/libsass-python/pull/246 . wieder zu aktivieren

Hinweis: Dies führt zu einer Veraltungswarnung für .css Dateien. Die Veraltungswarnung wird in 3.6.0 entfernt.

Ich bin sehr verwirrt über die Abschreibung, nirgendwo scheint klar:

Die Veraltungswarnung wird in 3.6.0 entfernt.

vs.

Das Einschließen von .css-Dateien mit @import ist ein nicht standardmäßiges Verhalten, das in zukünftigen Versionen von LibSass entfernt wird. Verwenden Sie einen benutzerdefinierten Importer, um dieses Verhalten beizubehalten. Lesen Sie in Ihrer Implementierungsdokumentation nach, wie Sie einen benutzerdefinierten Importer erstellen.

Wird die Abschreibungswarnung in 3.6.0 entfernt und sass_option_push_import_extension funktioniert weiterhin oder wird die Funktionalität zum Importieren von CSS komplett entfernt?

Persönlich würde ich sagen, dass es ein großer Rückschritt für libsass wäre, die Unterstützung von CSS-Importen einzustellen, dies bedeutet entweder:

  • Bibliotheken, die libsass verwenden, müssen jeweils ihre eigenen benutzerdefinierten Importer implementieren, um CSS zu unterstützen
  • oder der durchschnittliche Benutzer (der keine Ahnung von benutzerdefinierten Importeuren oder deren Implementierung hat) verliert das Recht, CSS in seinen Sass zu importieren, wodurch alle Vorteile der Überprüfung und Komprimierung von CSS verloren gehen.

Ich benutze kein Rubin, ich werde es nicht tun und es ist mir egal, was es tut und was nicht. Können wir bitte sass_option_push_import_extension behalten.

Entschuldigung für die Unklarheit. Die Versionshinweise wurden inzwischen aktualisiert, um hoffentlich klarer zu sein.

Ich benutze kein Rubin, ich werde es nicht tun und es ist mir egal, was es tut und was nicht

Erstens sind wir nicht gegen Ruby. Sass ist eine Sprache mit einer Spezifikation wie jede andere. Die Ruby-Implementierung ist die Quelle der Wahrheit für die Sass-Sprachspezifikation.

Raw-CSS-Importe sind eine Funktion, die gegen die Sass-Sprachspezifikation verstößt und die niemals in LibSass hätte sein dürfen. Es muss entfernt werden.


Da die Menschen so abhängig davon geworden sind, müssen wir es auf verantwortungsvolle Weise entfernen.

Daher machen wir es zu einem Opt-in-Verhalten über sass_option_push_import_extension . Diese API wird nicht verschwinden, bis es eine Sass-konforme Möglichkeit gibt, dies zu tun. Ein solches Feature ist für das 4.0-Module-System geplant.

Die Veraltungswarnung wurde in 3.5.x hinzugefügt, da in LibSass nicht genügend Hooks vorhanden sind, damit ein Implementierer die korrekte Veralteungswarnung performant ausgeben kann. Es ist die Veraltungswarnung, die in 3.6 entfernt wird.

An dieser Stelle würden wir von den Implementierern erwarten, dass sie ihre Majors anheben, wenn der Wunsch besteht, die Einhaltung der Spezifikationen zu gewährleisten.

Danke fürs klarstellen.

Ich habe gerade den Modulvorschlag für Sass 4 gelesen und er sieht toll aus.

Siehe auch https://github.com/sass/node-sass/issues/2362 für den Umgang damit auf der Node-Sass-Seite.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen