Libsass: 3.5.3 regressão: a importação de arquivos `.css` falha em vez de avisar (como indicam as notas de lançamento)

Criado em 24 abr. 2018  ·  6Comentários  ·  Fonte: sass/libsass

Relatado originalmente aqui: 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 (via libsass-python )

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

libsass 3.5.3 (via 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 o aviso observado nas notas de lançamento

Comentários muito úteis

Estou muito confuso com a depreciação, nada parece claro:

O aviso de descontinuação será removido na versão 3.6.0.

vs.

Incluir arquivos .css com @import é um comportamento não padrão que será removido em versões futuras do LibSass. Use um importador personalizado para manter esse comportamento. Verifique a documentação de suas implementações sobre como criar um importador personalizado.

O aviso de depreciação será removido em 3.6.0 e sass_option_push_import_extension continuará a funcionar ou a funcionalidade de importação de css será completamente removida?

Pessoalmente, eu diria que seria um grande retrocesso para a libsass parar de oferecer suporte às importações de css, isso significaria:

  • cada uma das bibliotecas que usam libsass tem que implementar seus próprios importadores personalizados para suportar css
  • ou o usuário médio (que eu acho que não tem ideia sobre importadores personalizados ou como implementá-los) perde o direito de importar css para seu sass, perdendo assim todos os benefícios de verificar e compactar css.

Não uso rubi, não vou e não me importa o que faz e o que deixa de fazer. Podemos ficar com sass_option_push_import_extension .

Todos 6 comentários

Acho que isso pode ser fechado, isso é exatamente o que era esperado em # 1963.

Pessoalmente, acho que deveria ter sido depreciado por meio de um aviso primeiro e causado um pequeno lançamento em vez de um patch, mas agora é tarde demais.

Desculpe, esta foi uma alteração importante não intencional para este lançamento de patch.

Minha preferência é avançar com as mudanças e atualizar as notas de versão.

Você precisará usar a API sass_option_push_import_extension para reativar as importações de .css como vejo que você fez em https://github.com/sass/libsass-python/pull/246 .

Nota: fazer isso resultará em um aviso de depreciação para .css arquivos. O aviso de descontinuação será removido na versão 3.6.0.

Estou muito confuso com a depreciação, nada parece claro:

O aviso de descontinuação será removido na versão 3.6.0.

vs.

Incluir arquivos .css com @import é um comportamento não padrão que será removido em versões futuras do LibSass. Use um importador personalizado para manter esse comportamento. Verifique a documentação de suas implementações sobre como criar um importador personalizado.

O aviso de depreciação será removido em 3.6.0 e sass_option_push_import_extension continuará a funcionar ou a funcionalidade de importação de css será completamente removida?

Pessoalmente, eu diria que seria um grande retrocesso para a libsass parar de oferecer suporte às importações de css, isso significaria:

  • cada uma das bibliotecas que usam libsass tem que implementar seus próprios importadores personalizados para suportar css
  • ou o usuário médio (que eu acho que não tem ideia sobre importadores personalizados ou como implementá-los) perde o direito de importar css para seu sass, perdendo assim todos os benefícios de verificar e compactar css.

Não uso rubi, não vou e não me importa o que faz e o que deixa de fazer. Podemos ficar com sass_option_push_import_extension .

Desculpas por não ser claro. Desde então, as notas de lançamento foram atualizadas para ficarem mais claras.

Eu não uso rubi, eu não vou e eu não poderia me importar menos com o que ele faz e o que não faz

Em primeiro lugar, não somos nós contra Ruby. Sass é uma linguagem com especificações como qualquer outra. A implementação Ruby é a fonte da verdade para a especificação da linguagem Sass.

As importações de CSS brutas são um recurso que viola as especificações da linguagem Sass e nunca deveria estar no LibSass. Deve ser removido.


Uma vez que as pessoas se tornaram tão dependentes dele, precisamos removê-lo de uma forma responsável.

Como tal, estamos tornando-o um comportamento opcional por meio de sass_option_push_import_extension . Esta API não desaparecerá até que haja uma maneira compatível com a linguagem Sass de fazer isso. Tal recurso está planejado para o sistema de módulos 4.0.

O aviso de reprovação foi adicionado em 3.5.x porque não há ganchos suficientes no LibSass para um implementador produzir o aviso de reprovação correto. É o aviso de descontinuação que será removido no 3.6.

É aqui que esperamos que os implementadores superem seus principais caso desejem manter a conformidade com as especificações.

Obrigado por esclarecer.

Acabei de ler a proposta do módulo para sass 4 e parece ótimo.

Veja também https://github.com/sass/node-sass/issues/2362 para lidar com isso na extremidade do node-sass.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

luiscla27 picture luiscla27  ·  10Comentários

JohnMica picture JohnMica  ·  3Comentários

Nimce picture Nimce  ·  4Comentários

bertusgroenewegen picture bertusgroenewegen  ·  6Comentários

nex3 picture nex3  ·  9Comentários