2016-03-24 10 views
3

babel-preset-es2015 ist installiert und ist OK mit es6 Funktion wie unter let a = 2;.
Aber nicht mit es6 Module arbeiten verfügen import fs from 'fs', wie folgend:Babel-Knoten es6 "Module werden nicht in der REPL unterstützt"

$ babel-node --presets es2015 
> let a = 2; 
'use strict' 
> a 
2 
> import fs from 'fs'; 
SyntaxError: repl: Modules aren't supported in the REPL 
import fs from 'fs'; 
    at File.buildCodeFrameError (/usr/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/index.js:407:15) 
    at NodePath.buildCodeFrameError (/usr/lib/node_modules/babel-cli/node_modules/babel-traverse/lib/path/index.js:149:26) 
    at PluginPass.ModuleDeclaration (/usr/lib/node_modules/babel-cli/lib/_babel-node.js:78:20) 
    at newFn (/usr/lib/node_modules/babel-cli/node_modules/babel-traverse/lib/visitors.js:262:19) 
    at NodePath._call (/usr/lib/node_modules/babel-cli/node_modules/babel-traverse/lib/path/context.js:63:18) 
    at NodePath.call (/usr/lib/node_modules/babel-cli/node_modules/babel-traverse/lib/path/context.js:47:17) 
    at NodePath.visit (/usr/lib/node_modules/babel-cli/node_modules/babel-traverse/lib/path/context.js:93:12) 
    at TraversalContext.visitQueue (/usr/lib/node_modules/babel-cli/node_modules/babel-traverse/lib/context.js:152:16) 
    at TraversalContext.visitMultiple (/usr/lib/node_modules/babel-cli/node_modules/babel-traverse/lib/context.js:110:17) 
    at TraversalContext.visit (/usr/lib/node_modules/babel-cli/node_modules/babel-traverse/lib/context.js:182:19) 

Also, was ist los?
Danke!

+1

Die Fehlermeldung ist ziemlich selbst -explanatory ... Module werden tatsächlich nicht in der Befehlszeilen-REPL-Schnittstelle unterstützt. –

+0

@JoeClay Wenn babel-node ohne '--presets es2015' ausgeführt wird, wird 'xx werden nicht in der REPL unterstützt' wenn eval' let a = 2; 'auch, wenn' --presets es2015' hinzugefügt wird, 'let a = 2;' ist in Ordnung. Also frage ich mich, ob ich etwas vergessen habe? –

+0

@JoeClay Was mich dazu brachte war, dass ich nicht wusste, was "die REPL" war, also stimme ich nicht zu, dass es selbsterklärend ist. Die Suche nach der Definition nach dem Lesen Ihres Kommentars hat mir geholfen, aber es könnte klarer sein. – Dezza

Antwort

5

Die Fehlermeldung ist genau das, was es sagt. Sie können ES6-Modul-Syntax nicht in der REPL verwenden, es wird nicht unterstützt. Wenn Sie sie testen wollen, sollten Sie eine tmp.js Datei machen, setzen Sie Ihren Code dort, und dann laufen

babel-node --presets es2015 tmp.js 
1

Verstanden von der offiziellen doc: http://babeljs.io/docs/usage/cli/

ES6-style module-loading may not function as expected 
Due to technical limitations ES6-style module-loading is not fully supported in a babel-node REPL.