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.
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 !
Génial. Dans ce cas, corrigé dans https://github.com/jashkenas/underscore/commit/2a932470303157072015d5ab7f26d40b9deb4634.