Ich bin heute auf einige sehr seltsame Fehler in einem Paket eines Drittanbieters ( natural
) mit Fehlern wie TypeError: Cannot read property 'without' of undefined
gestoßen. Dies liegt daran, dass underscore
wie folgt importiert wird:
var Tokenizer = require('./tokenizer'),
util = require("util"),
_ = require('underscore')._;
Es scheint, dass die neueste Version den gesamten Shebang als Standardexport exportiert, nicht als benannter Wert für die Exporte. Das ist wahrscheinlich in Ordnung ... mit Ausnahme von Paketen, die das oben genannte tun.
Vielleicht sollte _
immer noch als Alias für den Standardexport verfügbar gemacht werden? Etwas so Wichtiges wie die Top-Level-API zu ändern, scheint eine große Breaking Change zu sein (keine _kleine_ Semver-Änderung!), und schließlich wird underscore
von vielen Paketen da draußen als Abhängigkeit verwendet.
Dasselbe Problem hier.. scheint, als ob _
als undefined
exportiert wird: https://github.com/jashkenas/underscore/issues/2835
Ping @jgonggrijp — es sieht so aus, als bräuchten wir eine 1.10.2-Patch-Nachverfolgung.
Ich denke insbesondere, dass das Entfernen des alten Shim-Codes für die vorherige Node-API das Problem verursacht hat, hier: https://github.com/jashkenas/underscore/compare/1.9.2...1.10.0# diff -0f36b362a0b81d6f4d4bfd8a7413c75dL45-L60
... @jgonggrijp — Glaubst du, es würde ein Problem geben, so etwas wieder hinzuzufügen?
Das ist definitiv ein Versehen, sorry dafür.
@jashkenas dein Link scheint nicht zu funktionieren, also kann ich nicht sehen, was du meinst. Vielleicht so etwas in der index-default
?
var _ = mixin(allExports);
_._ = _;
export default _;
var _ = mixin(allExports); _._ = _; export default _;
Das ist genau das, was ich tat! Super.
Dies sollte jetzt in 1.10.2 behoben sein, das ich auf NPM hochgeschoben habe. Probier es bitte mal aus und lass mich wissen, ob alles wieder normal ist. Entschuldigung für den Fehler.
@jashkenas du GOTT! :engel: Danke!
Toll. In diesem Fall behoben in https://github.com/jashkenas/underscore/commit/2a932470303157072015d5ab7f26d40b9deb4634.