2016-05-10 8 views
0

Ich bin neu bei Babel und ich habe eine Frage mit der Verwendung von Babel innerhalb von node.js. Es gibt eine Datei namens 'app.js', Hauptdatei meiner Knoten-App. also transpiliere ich 'app.js' mit:Babel mit Sub-js-Dateien

babel app.js --out-file app-compiled.js 

und es sieht gut aus. aber das Problem sind Unterdateien. In "app.js" gibt es eine Syntax, die externe Javascript-Dateien lädt.

import MyComponent from './components/mycomponent'; 

und innerhalb von“./components/mycomponent‘ ist:

... 
var MyComponent = { ... }; 
... 
export default MyComponent; 

und wenn ich anfangen 'app-compiled.js', es hat Fehler, da sub-Datei mit 'Import/Export' und der Knoten nicht wissen, was sie sind.

gibt es eine Möglichkeit zum automatischen Unterdateien zusammenstellen oder wie an den Client gesendet, ist es eine Möglichkeit, ganze ES2015 Knoten Anwendungen zu einzelnen JavaScript zu bündeln, dass der Knoten Datei verstehen?

wird es sehr zu schätzen wissen, dass Sie mir einen Rat geben!

p.s. sorry, ich vergaß zu erwähnen: i erstellt .babelrc mit

{ 
    "presets": [ 
    "es2015", 
    "react" 
    ] 
} 

babel gut funktioniert, aber wie die Last externe JS in Knoten App verwendet ES2015 mit babel machen?

+0

Bauen Sie etwas nur für den Knoten oder etwas für den Browser? Node versteht die ES6 'import'' export'-Syntax noch nicht, also müssen Sie 'require' weiter verwenden, und damit es im Browser funktioniert, müssen Sie webpack oder browserify verwenden. – Andy

Antwort

0

Babel unterstützt das ES2015/ES6 nicht von Anfang an. Dazu müssen Sie das Preset es2015 aktivieren.

Es here umrissen, aber im Grunde müssen Sie dies in Ihrem Projektverzeichnis tun:

$ npm install --save-dev babel-preset-es2015 
$ echo '{ "presets": ["es2015"] }' > .babelrc 

Danach können Sie den babel Befehl die gleiche Art und Weise ausgeführt werden Sie jetzt tun und es sollte import/export übersetzen die ES5-Äquivalente.

+0

oh, tut mir leid. Ich habe vergessen, es zu erwähnen, ich habe bereits .babelrc mit {"Presets": ["es2015", "reagieren"]} erstellt. Babel ist eigentlich Arbeit, aber meine Frage ist, wie externe Javascript verwendet ES2015 mit Babel laden? – modernator

+1

Wenn Sie den gesamten Code in einer einzigen Datei speichern möchten, benötigen Sie einen Bundler wie Browserify oder Webpack (die Babel-Unterstützung haben). Alternativ können Sie Babel alle ES6-Dateien auf ES5 übertragen lassen und sie in ein separates Verzeichnis schreiben lassen ('--out-dir'). – robertklep

+0

ok danke. Ich werde es versuchen ;) – modernator