Underscore: Geändertes Exportformat/API in einigen kleineren Unterbrechungen von Community-Paketen

Erstellt am 30. März 2020  ·  8Kommentare  ·  Quelle: jashkenas/underscore

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.

Alle 8 Kommentare

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!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

chikamichi picture chikamichi  ·  8Kommentare

zackschuster picture zackschuster  ·  5Kommentare

dmaicher picture dmaicher  ·  9Kommentare

danilopolani picture danilopolani  ·  5Kommentare

jezen picture jezen  ·  8Kommentare