2016-09-13 1 views
4

Ich benutze Babel in meinem Projekt. Die Sache ist, ich habe diese Zeile Code in meinem server.js:Wie kompilieren Sie alle enthaltenen Dateien in eine mit Babel?

import schema from "./data/schema"; 

(data/schema.js ist in ES2015-Syntax).

Und wenn ich versuche, meine server.js mit babel zu kompilieren, wie folgt aus:

babel -o server_production.js --minified server.js 

es erzeugt eine neue Datei ohne Fehler und ersetzt import Anweisung mit require. Aber die Sache ist, wenn ich versuche, meine babel-compiled server.js mit node, klagt es über data/schema.js, weil es nicht in ES5 transpiliert wurde, nur erforderlich (der genaue Fehler ist Unexpected token "import", weil ich einige andere Importe in data/schema.js).

Also, die Frage ist: Wie kann ich meine Datei und alle Dateien es import s in einer Datei kompilieren? Ich habe versucht babel -o server_production.js --minified data/schema.js server.js, aber das hat auch nicht funktioniert.

+2

Ich denke nicht, dass Babel Abhängigkeitsanalyse macht. Sie müssen alle Dateien angeben, die Sie konvertieren möchten. –

Antwort

5

Babel bündelt keine Abhängigkeiten standardmäßig. Sie müssen einen Modulbündler wie rollup verwenden.

Um dies zu tun, müssen Sie eine rollup Config ähnlich wie diese definieren:

rollup.config.js

import babel from 'rollup-plugin-babel'; 
import babelrc from 'babelrc-rollup'; 

export default { 
    entry: 'server.js', 
    dest: 'server_production.js', 
    plugins: [ 
    babel(babelrc()) 
    ] 
}; 

Das mit der package.json Datei funktioniert unten definiert:

{ 
    "scripts": { 
    "rollup": "./node_modules/.bin/rollup -c" 
    }, 
    "devDependencies": { 
    "babel-cli": "6.14.0", 
    "babel-plugin-external-helpers": "6.8.0", 
    "babel-preset-es2015": "6.14.0", 
    "babelrc-rollup": "3.0.0", 
    "rollup": "0.35.10", 
    "rollup-plugin-babel": "2.6.1" 
    } 
} 

Sie führen den Befehl npm run rollup -c aus, um die Dateien zu bündeln und zu kompilieren.

Sie ein Beispiel hier finden: https://ide.c9.io/ifeanyidev/babel-rollup-example

+0

Super, danke! – serge1peshcoff

+0

'npm run rollup' ist ausreichend – haffla

0

würde ich vorschlagen, um zu versuchen, Ihre Maven Projekt in maven-wrapper Version

Danach ist alles was Sie wickeln müssen die mvnw und der Wrapper die Maven-Download wird aufgerufen , richte es ein und mach das Ding.

Ich kann nicht mehr sagen, da ich keine XP habe, aber es kann eine Lösung sein.

Verwandte Themen