2016-09-13 8 views
4

私は私のプロジェクトでBabelを使用しています。事は、私は私のserver.jsにこのコード行を持って、次のとおりです。Babelを使ってすべてのインクルードファイルをコンパイルするには?

import schema from "./data/schema"; 

data/schema.jsはES2015構文です)。

そして、私はバベルと私のserver.jsをコンパイルしようとしています、このように:

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

それはエラーなしで新しいファイルを作成し、requireimport命令を置き換えます。しかし、私がバーベルでコンパイルしたserver.jsnodeと実行しようとすると、それはES5に転送されなかったので約data/schema.jsという文句を言います(正確なエラーはUnexpected token "import"です。 data/schema.js)。

質問:どのようにファイルとすべてのファイルをimportを1つのファイルにコンパイルできますか?私はbabel -o server_production.js --minified data/schema.js server.jsを試しましたが、それもうまくいきませんでした。

+2

バベルは依存解析をしていないと思います。変換するすべてのファイルを指定する必要があります。 –

答えて

5

Babelはデフォルトで依存関係をバンドルしません。 rollupのようなモジュールバンドラを使用する必要があります。

これを行うには、あなたは、これと同じrollup設定を定義する必要があります:

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()) 
    ] 
}; 

を。これは、以下に定義package.jsonファイルで動作します

{ 
    "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" 
    } 
} 

npm run rollup -cコマンドを実行して、ファイルをバンドルしてコンパイルします。

あなたがここに例を見つけることができます:https://ide.c9.io/ifeanyidev/babel-rollup-example

+0

素晴らしい、ありがとう! – serge1peshcoff

+0

'npm run rollup'で十分です – haffla

0

を私はあなたが必要とするすべてのmvnwを起動することであり、ラッパーがMavenをダウンロードしますmaven-wrapperバージョンその後

にあなたのMavenプロジェクトをラップしようとすることをお勧めそれをセットアップして、そのことをしてください。

私はxpを持っていないので、それ以上のことは言えませんが、解決策になる可能性があります。

関連する問題