Underscore: Modification du format d'exportation/de l'API dans les paquets de la communauté semver minor breaks

Créé le 30 mars 2020  ·  8Commentaires  ·  Source: jashkenas/underscore

J'ai rencontré des bogues très étranges aujourd'hui dans un package tiers ( natural ) avec des erreurs comme TypeError: Cannot read property 'without' of undefined . Cela s'avère être parce qu'il importe underscore comme ceci :

var Tokenizer = require('./tokenizer'),
    util = require("util"),
    _ = require('underscore')._;

Il semble que la dernière version exporte l'intégralité du shebang en tant qu'exportation par défaut, et non en tant que valeur nommée sur les exportations. C'est probablement bien… sauf pour tous les packages qui font ce qui précède.

Peut-être que _ devrait toujours être exposé en tant qu'alias pour l'exportation par défaut ? Changer quelque chose d'aussi important que l'API de niveau supérieur semble être un changement majeur (pas un changement _mineur_ semver !), et après tout, underscore est utilisé comme dépendance par de nombreux packages.

Tous les 8 commentaires

Même problème ici .. semble que _ est exporté en tant que undefined : https://github.com/jashkenas/underscore/issues/2835

Pinging @jgongrijp - il semble que nous aurons besoin d'un suivi du patch 1.10.2.

Plus précisément, je pense que c'est la suppression de l'ancien code de shim pour l'API Node précédente qui a causé le problème, ici : https://github.com/jashkenas/underscore/compare/1.9.2...1.10.0# différentiel -0f36b362a0b81d6f4d4bfd8a7413c75dL45 -L60

... @jgonggrijp - pensez-vous qu'il y aurait un problème à ajouter quelque chose comme ça?

C'est certainement un oubli, désolé.

@jashkenas votre lien ne semble pas fonctionner donc je ne vois pas ce que vous voulez dire. Peut-être quelque chose comme ça dans le index-default ?

var _ = mixin(allExports);
_._ = _;
export default _;
var _ = mixin(allExports);
_._ = _;
export default _;

C'est exactement ce que je faisais ! Super.

Cela devrait être corrigé maintenant dans 1.10.2, que j'ai poussé jusqu'à NPM. S'il vous plaît, essayez-le et faites-moi savoir si tout est revenu à la normale. Toutes mes excuses pour le ratage.

@jashkenas ton DIEU ! :ange: Merci !

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

Questions connexes

chikamichi picture chikamichi  ·  8Commentaires

marcalj picture marcalj  ·  5Commentaires

jezen picture jezen  ·  8Commentaires

sky0014 picture sky0014  ·  8Commentaires

xiaoliwang picture xiaoliwang  ·  3Commentaires