Libsass: demande de fonctionnalité : : ajouter un indicateur pour désactiver les AVERTISSEMENTS DE DÉPRÉCATION

Créé le 31 janv. 2019  ·  10Commentaires  ·  Source: sass/libsass

Depuis la version 4.9 de node-sass, l'avertissement actuel est affiché dans de nombreux projets. ( vous pouvez voir un problème ouvert demandant un moyen de faire taire l'avertissement ici )

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

L'avertissement est ok et j'aimerais corriger tous mes appels de fonctions obsolètes mais je ne peux pas, la raison principale est que je ne sais même pas quelle bibliothèque est celle avec le problème... (ce n'est pas mon code) je comprendre la nécessité de forcer tout le monde à mettre à jour leurs éléments obsolètes, mais ce n'est pas faisable. Je pense que chaque développeur est responsable de sa propre application et prendre le risque d'être obsolète est de son côté, j'accepte la responsabilité :)

Et donc... cette demande de fonctionnalité consiste à ajouter quelque part un indicateur qui peut être activé/désactivé le DEPRECATION WARNINGS

J'ai déjà essayé par erreur d'ajouter une variable d'environnement au projet node-sass, mais @nschonni m'a dit que le PR devrait être fait ici à libsass , cependant @xzyfer m'a dit que la solution acceptable pour faire taire la dépréciation warnings est de corriger le code obsolète, même si le code appartient à quelqu'un d'autre, une bibliothèque.

  • Vous pouvez voir que le code pour ajouter le drapeau est déjà disponible sur PR-2587 à partir du projet node-sass , ce n'est pas beaucoup.
  • Le problème ouvert à ce sujet est également 2334 (également du projet node-sass).

Tous les 10 commentaires

Je pense que j'ai une solution plus standard, que pensez-vous tous de la mise en œuvre des niveaux de journalisation ?? (comme log4j, winston , etc.).

S'il vous plaît dites-moi si vous êtes plus d'accord sur ce point :) (donc je vais modifier ce titre FR)

Nous n'ajouterons pas de niveaux de journalisation, et nous n'activerons pas non plus la désactivation des avertissements d'obsolescence. Ces avertissements sont d'une importance cruciale pour que le code utilisateur continue de fonctionner.

Nous envisagerions cependant des solutions qui facilitent la recherche du code en utilisant un comportement déprécié.

Merci d'avoir répondu à toutes mes préoccupations avec ce @xzyfer... d'ailleurs, j'ai trouvé la bibliothèque avec le problème donc le correctif est en cours pour moi :+1:

Et donc... je suppose que tout le monde utilise des cas, il faudra attendre que les propriétaires de bibliothèque décident de réparer leurs trucs obsolètes (...)

N'oubliez pas que ces avertissements ne sont pas d'une importance critique pour continuer notre travail en tant que développeurs... s'ils étaient comme ça, une erreur serait renvoyée au lieu d'un avertissement.

Une approche alternative pourrait être https://github.com/sass/libsass/pull/2862 ...

C'est vraiment important. Je reçois actuellement des dizaines de la même erreur.

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}")

avec quelque chose comme ça

+_(image_size_#{$size})

Je ne sais même pas à quel opérateur il fait référence, mais je préférerais de loin passer à la "version simplifiée" quand il s'agit d'écrire cette alternative horrible.

Ces avertissements sont d'une importance cruciale pour que le code utilisateur continue de fonctionner.

Oui je suis d'accord @xzyfer , mais j'ai déjà lu ces avertissements et je veux les mettre de côté pour le moment et me concentrer sur d'autres choses, mais je ne peux pas car ces avertissements remplissent tout le terminal

Il n'y a aucune intention de soutenir cela pour le moment. Les avertissements de dépréciation sont d'une importance cruciale pour nous faire évoluer la langue. La désactivation de l'avertissement de dépréciation ne fait que différer la douleur lorsque le changement de rupture est introduit et que notre outil de suivi des problèmes sera inondé. Pour supprimer l'avertissement, rétrogradez vers une version de Libsass antérieure à l'introduction de l'avertissement.

Les avertissements ne sont utiles que la première fois que vous les lisez. Si quelqu'un les éteint, c'est parce qu'ils les ont déjà lus et qu'ils en ont marre et qu'ils en ont donc conscience, le montrer à nouveau ne fera aucune différence, et à l'avenir, ils sauront pourquoi il s'est cassé.
Ne pas laisser les gens ignorer ces avertissements n'aide personne, c'est juste ennuyeux.

L'avertissement concerne également la façon dont cela deviendra plus simplifié et la solution qu'il propose pour le rendre beaucoup plus compliqué.
Vous pouvez voir pourquoi quelqu'un ne voudrait pas suivre cette suggestion, surtout lorsque je l'utilise partout dans mon projet

@xzyfer vous avez un bon point là-dessus !! je suis d'accord avec toi :)

L'avertissement de dépréciation en sourdine ne fait que différer la douleur lorsque le changement de rupture est introduit, ce que notre traqueur de problèmes appréciera inondé

Cependant, je pense que nous pouvons encore trouver une solution !! pour la plupart des développeurs qui se plaignent de cela. La raison principale est cette partie (comme l' a dit

Je reçois actuellement des dizaines de la même erreur.

Que pensez-vous de réduire tous ces avertissements à un seul ?? dans mon cas, lorsque j'ai ouvert cette demande de fonctionnalité, je recevais plus de 100 000 avertissements. Je pense que vous pouvez supprimer tous les "avertissements détaillés" et simplement imprimer :

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

Et peut-être ajouter :

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 quelque chose comme ça... j'espère que vous avez l'idée, qu'en pensez-vous @xzyfer ?

Je suppose que mon dernier commentaire vaut la peine d'être géré comme une demande de fonctionnalité différente (?)

Cette page vous a été utile?
0 / 5 - 0 notes