Relatado originalmente aqui: https://github.com/sass/libsass-python/issues/245
<strong i="8">@import</strong> 'cssfile';
a { b: c; }
$ pysassc --version
pysassc 0.14.2 (sass/libsass 3.5.2)
$ pysassc input.scss
a {
b: c; }
$ 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
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:
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.
Comentários muito úteis
Estou muito confuso com a depreciação, nada parece claro:
vs.
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:
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
.