Underscore: Nicht in der Lage, Babel

Erstellt am 5. Jan. 2017  ·  5Kommentare  ·  Quelle: jashkenas/underscore

Ich kann underscore.min nicht mit Babel umwandeln. Ich brauche es, weil ich mit gulp alle Dateien zusammenfüge und sie dann mit babel verarbeite, aber mit Unterstrich gibt es einen Fehler zurück.

Du kannst es hier ausprobieren: https://babeljs.io/repl/# ?babili=false&evaluate=true&lineWrap=false&presets=es2015

Unten im rechten Panel erscheint ein Fehler: "u is undefined".

duplicate

Hilfreichster Kommentar

Ich erhalte "Eigenschaft '_' von undefiniert kann nicht gelesen werden", was anders, aber auch kaputt ist.

Welche Version von Underscore verwendest du?

Ich habe den Verdacht, dass dies mit https://github.com/jashkenas/underscore/pull/2153 zusammenhängt, das im Master behoben wurde, aber wir haben noch keine Version ausgeliefert, die es enthält.

Sie könnten es mit der Version von Underscore auf Master (https://github.com/jashkenas/underscore/blob/master/underscore.js) versuchen und sehen, ob das das Problem löst?

Lassen Sie mich wissen, was Sie finden.

Alle 5 Kommentare

Ich erhalte "Eigenschaft '_' von undefiniert kann nicht gelesen werden", was anders, aber auch kaputt ist.

Welche Version von Underscore verwendest du?

Ich habe den Verdacht, dass dies mit https://github.com/jashkenas/underscore/pull/2153 zusammenhängt, das im Master behoben wurde, aber wir haben noch keine Version ausgeliefert, die es enthält.

Sie könnten es mit der Version von Underscore auf Master (https://github.com/jashkenas/underscore/blob/master/underscore.js) versuchen und sehen, ob das das Problem löst?

Lassen Sie mich wissen, was Sie finden.

Ich verwende die Version 1.8.3, die neueste. Leider kann ich die unminifizierte Version nicht verwenden, da die "require"-Methoden nicht unterstützt werden.

Exporte werden im Browser nicht unterstützt, Sie benötigen eine gemeinsame js-Umgebung wie node.js/io.js, browserify/webpack usw

Wo sehen Sie den Fehler mit exports ? Ich sehe diese Nachricht, wenn ich die Babel-Website verwende, um sie zu transpilieren, aber der Code sieht gut aus. Während Underscore auf die Variable exports verweist, erkennt es zuerst, in welcher Umgebung es sich befindet, und verwendet exports nur, wenn es in einer Knotenumgebung ausgeführt wird.

Im Grunde genommen könnte dieser „Fehler“ nur darauf zurückzuführen sein, dass Babel sich zu sehr bemüht, hilfreich zu sein.

Bearbeitet nach mehr Recherche

Mir ist gerade aufgefallen ... Die eigentliche letzte Zeile von Underscore soll sich selbst mit this aufrufen:

}.call(this));

Nach der Erstellung durch Babel wird die letzte Zeile jedoch geändert, um undefined zu übergeben:

}.call(undefined));

Es scheint, dass in ES6-Modulen this undefined sein soll (obwohl es mir schwer fällt, die eigentliche ECMA-Spezifikation zu verarbeiten, um festzustellen, ob das wahr ist), also ersetzt Babel es automatisch.

StackOverflow: So hindern Sie babel daran, „this“ in „undefined“ zu transpilieren

Screenshot von Babels Online-Dolmetscher:

screen shot 2017-02-26 at 9 56 47 pm

Ich denke, das ist mit diesem Commit behoben: https://github.com/jashkenas/underscore/commit/8a847ba69e521b3d7f4faaa6c7c039bcb8e6497b von @lexdene

es ist jedoch keine offizielle Version verfügbar, die diesen Fix enthält; die aktuelle Version 1.8.3 enthält es nicht...

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen