Libsass: 3.5.3 regresión: la importación de archivos `.css` falla en lugar de advertir (como indican las notas de la versión)

Creado en 24 abr. 2018  ·  6Comentarios  ·  Fuente: sass/libsass

Reportado originalmente aquí: 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 (a través de libsass-python )

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

libsass 3.5.3 (a través de 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';

   ^

Espero la advertencia anotada en las notas de la versión.

Comentario más útil

Estoy muy confundido por la depreciación, en ninguna parte parece claro:

La advertencia de obsolescencia se eliminará en 3.6.0.

vs.

Incluir archivos .css con @import es un comportamiento no estándar que se eliminará en futuras versiones de LibSass. Utilice un importador personalizado para mantener este comportamiento. Consulte la documentación de sus implementaciones sobre cómo crear un importador personalizado.

¿Se eliminará la advertencia de depreciación en 3.6.0 y sass_option_push_import_extension continuará funcionando o se eliminará por completo la funcionalidad de importar css?

Personalmente, diría que sería un gran paso atrás para libsass dejar de admitir importaciones de CSS, esto significará:

  • las bibliotecas que usan libsass tienen que implementar sus propios importadores personalizados para admitir css
  • o el usuario promedio (que supongo que no tiene idea sobre los importadores personalizados o cómo implementarlos) pierde el derecho a importar css en su sass, perdiendo así todos los beneficios de verificar y comprimir css.

No uso ruby, no lo voy a usar y no podría importarme menos lo que hace y lo que no hace. Por favor, ¿podemos quedarnos con sass_option_push_import_extension ?

Todos 6 comentarios

Creo que esto se puede cerrar, esto es exactamente lo que se esperaba en 1963.

Personalmente, creo que debería haberse depreciado a través de una advertencia primero y haber causado una versión menor en lugar de un parche, pero ahora es demasiado tarde.

Lo siento, este fue un cambio rotundo no intencionado para esta versión de parche.

Mi preferencia es avanzar con cambios y actualizar las notas de la versión.

Deberá usar la API sass_option_push_import_extension para volver a habilitar las importaciones de .css como veo que lo ha hecho en https://github.com/sass/libsass-python/pull/246 .

Nota: si lo hace, se generará una advertencia de obsolescencia para los archivos .css . La advertencia de obsolescencia se eliminará en 3.6.0.

Estoy muy confundido por la depreciación, en ninguna parte parece claro:

La advertencia de obsolescencia se eliminará en 3.6.0.

vs.

Incluir archivos .css con @import es un comportamiento no estándar que se eliminará en futuras versiones de LibSass. Utilice un importador personalizado para mantener este comportamiento. Consulte la documentación de sus implementaciones sobre cómo crear un importador personalizado.

¿Se eliminará la advertencia de depreciación en 3.6.0 y sass_option_push_import_extension continuará funcionando o se eliminará por completo la funcionalidad de importar css?

Personalmente, diría que sería un gran paso atrás para libsass dejar de admitir importaciones de CSS, esto significará:

  • las bibliotecas que usan libsass tienen que implementar sus propios importadores personalizados para admitir css
  • o el usuario promedio (que supongo que no tiene idea sobre los importadores personalizados o cómo implementarlos) pierde el derecho a importar css en su sass, perdiendo así todos los beneficios de verificar y comprimir css.

No uso ruby, no lo voy a usar y no podría importarme menos lo que hace y lo que no hace. Por favor, ¿podemos quedarnos con sass_option_push_import_extension ?

Disculpas por no ser claro. Desde entonces, las notas de la versión se han actualizado para que, con suerte, sean más claras.

No uso rubí, no lo voy a usar y no me importa lo que hace y lo que no hace

En primer lugar, no somos nosotros contra Ruby. Sass es un lenguaje con una especificación como cualquier otro. La implementación de Ruby es la fuente de verdad para la especificación del lenguaje Sass.

Las importaciones de CSS sin procesar es una característica que viola la especificación del lenguaje Sass y nunca debería haber estado en LibSass. Debe ser eliminado.


Dado que las personas se han vuelto tan dependientes de él, debemos eliminarlo de manera responsable.

Como tal, lo estamos convirtiendo en un comportamiento de suscripción voluntaria a través de sass_option_push_import_extension . Esta API no desaparecerá hasta que haya una forma compatible con el lenguaje Sass de hacer esto. Esta característica está prevista para el sistema de módulos 4.0.

La advertencia de desaprobación se agregó en 3.5.x porque no hay suficientes ganchos en LibSass para que un implementador produzca de manera eficiente la advertencia de desaprobación correcta. Es la advertencia de obsolescencia que se eliminará en 3.6.

Aquí es donde esperaríamos que los implementadores superen a sus mayores si desean mantener el cumplimiento de las especificaciones.

Gracias por aclararlo.

Acabo de leer la propuesta del módulo para sass 4 y se ve muy bien.

Consulte también https://github.com/sass/node-sass/issues/2362 para tratar con esto en el extremo de node-sass.

¿Fue útil esta página
0 / 5 - 0 calificaciones