Libsass: solicitação de recurso: Adicionar um sinalizador para desligar os AVISOS DE DEPRECATION

Criado em 31 jan. 2019  ·  10Comentários  ·  Fonte: sass/libsass

Desde a versão 4.9 do node-sass, o aviso atual está sendo mostrado em vários projetos. ( você pode ver um problema aberto pedindo uma maneira de silenciar o aviso aqui )

DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal
in Sass 4.0. Use call(get-function("variable-exists")) instead.

O aviso está ok e eu adoraria corrigir todas as minhas chamadas de funções obsoletas, mas não posso. O principal motivo é que eu nem sei qual biblioteca está com o problema ... (não é meu código) i entender a necessidade de forçar todos a atualizarem suas coisas obsoletas, mas isso não é viável. Acho que cada desenvolvedor é responsável por seu próprio aplicativo e correr o risco de ficar desatualizado é por conta própria, eu aceito a responsabilidade :)

E então ... esta solicitação de recurso é adicionar em algum lugar de alguma forma um sinalizador que pode ser ativado / desativado o DEPRECATION WARNINGS

Já tentei por engano adicionar uma variável de ambiente no projeto node-sass, mas @nschonni me disse que o PR deve ser feito aqui em libsass , no entanto @xzyfer me disse que a solução aceitável para silenciar a depreciação avisos é corrigir o código obsoleto, mesmo que o código pertença a outra pessoa, uma biblioteca.

  • Você pode ver que o código para adicionar o sinalizador já está disponível no PR-2587 do projeto node-sass , não é muito.
  • Além disso, a questão em aberto sobre este assunto é 2334 (também do projeto node-sass).

Todos 10 comentários

Acho que tenho uma solução mais padrão, o que vocês acham de implementar níveis de log ?? (como log4j, winston , etc).

Diga-me se concorda mais com isto :) (por isso vou modificar este título FR)

Não adicionaremos níveis de registro, nem habilitaremos avisos de suspensão de uso. Esses avisos são extremamente importantes para que o código do usuário continue funcionando.

No entanto, consideraríamos soluções que tornassem mais fácil encontrar o código usando um comportamento preterido.

Obrigado por responder a todas as minhas preocupações com este @xzyfer ... btw, encontrei a biblioteca com o problema, então a correção está em andamento para mim: +1:

E então ... eu acho que todos os outros usam casos, terá que esperar até que os proprietários da biblioteca decidam consertar suas coisas obsoletas (...)

Lembre-se de que esses avisos não são extremamente importantes para continuar nosso trabalho como desenvolvedores ... se fossem assim, um erro seria lançado em vez de um aviso.

Uma abordagem alternativa poderia ser https://github.com/sass/libsass/pull/2862 ...

Isso é muito importante. Atualmente estou recebendo dezenas do mesmo erro.

DEPRECATION WARNING on line 29 of sass/elements/image.sass:
#{} interpolation near operators will be simplified in a future version of Sass.
To preserve the current behavior, use quotes:

  unquote("image_size_#{$size}")

com algo assim

+_(image_size_#{$size})

Nem tenho certeza de a qual operador está se referindo, mas prefiro mudar para a "versão simplificada" quando se trata do que escrever aquela alternativa de aparência horrível.

Esses avisos são extremamente importantes para que o código do usuário continue funcionando.

Sim, concordo @xzyfer , mas já li esses avisos e quero colocá-los de lado por enquanto e me concentrar em outras coisas, mas não posso porque esses avisos enchem todo o terminal

Não há intenção de apoiar isso neste momento. Os avisos de suspensão de uso são extremamente importantes para a evolução da linguagem. Silenciar o aviso de suspensão de uso é apenas um adiamento da dor para quando uma alteração importante for introduzida, que nosso rastreador de problemas poderá ter inundado. Remover o downgrade do aviso para uma versão do Libsass anterior à introdução do aviso.

Os avisos são úteis apenas na primeira vez que você os lê. Se alguém os desliga é porque já leu e está cansado deles e por isso está ciente deles, mostrá-lo novamente não fará nenhuma diferença, e no futuro saberão porque quebrou.
Não deixar as pessoas suprimirem esses avisos não está ajudando ninguém, é apenas irritante.

Além disso, o aviso é sobre como ficará mais simplificado e a solução que ele oferece para torná-lo muito mais complicado.
Você pode ver porque alguém não iria querer seguir essa sugestão, especialmente quando eu a uso em todo o meu projeto

@xzyfer você tem um bom ponto sobre isso !! Eu concordo com você :)

Silenciar o aviso de suspensão de uso é apenas adiar a dor para quando uma alteração importante for introduzida, que nosso rastreador de problemas poderá aproveitar.

No entanto, acho que ainda podemos encontrar uma solução !! para a maioria dos desenvolvedores reclamando sobre isso. O principal motivo é esta parte (como @luaVolk disse):

Atualmente estou recebendo dezenas do mesmo erro.

O que você acha de reduzir todos esses avisos para apenas um ?? no meu caso, quando abri esta solicitação de recurso, recebi cerca de 100 mil + avisos. Acho que você pode remover todos os "avisos detalhados" e apenas imprimir:

Your libsass implementation is deprecated and will be illegal in Sass 4.0, for more details try '--libsass-verbose'.

E talvez adicione:

The following errors were found:
> 12 errors found: #{} interpolation near operators will be simplified in a future version of Sass
> 4 errors found: Passing a string to call() is deprecated and will be illegal
in Sass 4.0. Use call(get-function("variable-exists")) instead.

Ou algo assim ... espero que você tenha entendido, o que você acha @xzyfer?

Acho que meu último comentário vale a pena ser gerenciado como uma solicitação de recurso diferente (?)

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