2017-05-10 2 views
1

Ich versuche lodash zu testen, und anscheinend die folgende Zeile wird in der REPL nicht:Verwenden von Lodash-Modul in Babel-Node REPL?

import curry from 'lodash/curry'; 

Siehe zB babel-node es6 "Modules aren't supported in the REPL" Why does babel-node not support module loading in the REPL?

Gibt es eine Möglichkeit, die ich Vorbelastung ein Modul wie lodash in babel-node? (z. B. über eine Befehlszeilenoption oder eine Konfigurationsdatei)

Wenn nicht, gibt es eine andere Möglichkeit, ES6 mit lodash vorzuladen?

Bisher habe ich versucht, die Online-REPL unter https://babeljs.io/repl/, und Auswertung in der Konsole in Firefox. Keine funktioniert.

Antwort

0

import wird sicherlich nicht funktionieren, weil das Paket zuerst installiert und gebündelt werden sollte, um importiert zu werden, was nicht die Pflicht von Babel REPL ist.

Lodash bereits geladen und verwendet in Babel REPL, it can be used in REPL as _ global:

const { curry } = _; 

Wenn die Frage nicht zu Lodash, die schnellste Art und Weise beschränkt ist Drittanbieter-Bibliothek in REPL zu bekommen, ist das Skript manuell zu laden . Und da Babel Website hat jQuery geladen (wie fast jede Website), der kürzeste Weg, dies zu tun, ist jQuery.getScript, in der Konsole:

$.getScript('https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js'); 

Nach diesem Lodash _ global in REPL verfügbar wird.

Der gesamte Code kann mit Rückruf gewickelt wird Konsolenteil überspringen: REPL Importe nicht unterstützt

$.getScript('https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js',() => { 
    console.log(_.VERSION); 
}); 

babel-Knoten, wie die Links in der ursprünglichen Post sagen. Stattdessen sollte require verwendet werden, wie überall in Node.

var { curry } = require('lodash') 

Dies erfordert lodash in node_modules installiert haben, die in aktuellen Arbeitsverzeichnis existiert.

+0

Danke für Ihre Antwort. Ich benutze 'babel-node --presets es2015', und wenn ich'> const {curry} = _; 'tue, habe ich' TypeError: Kann die Eigenschaft 'curry' von undefined bei repl: 4: 17 nicht lesen ... 'Irgendwelche Vorschläge? – tinlyx

+0

Die Antwort adressiert Babel REPL in erster Linie. Sicher, es gibt kein _ _ global in Babel-Knoten. Sie sollten nur "erfordern", wie in der Regel in Node. – estus

Verwandte Themen