2017-01-24 21 views
3

私のノードアプリケーションではimport、矢印関数、スプレッド演算子、オブジェクトの破棄、let、およびconstを使用します。ノード6のために必要な最小限のベルベルプラグインは何ですか

私はコードが動作してtranspliledされるが、私は見ている、ということに気づいた次

"engines": { 
    "node": ">=6.9.4", 
    "npm": "^3" 
}, 

など

"babel": { 
    "presets": [ 
    "node6", 
    "stage-0" 
    ] 
}, 

"scripts": { 
    "clean": "rm -rf bin/", 
    "start": "node bin/index.js", 
    "babel": "babel src --out-dir bin", 
    "build": "npm run clean && npm run babel", 
    "dev": "babel-node src/index.js", 
    "test": "find ./test -name '*_spec.js' | NODE_ENV=test xargs mocha --compilers js:babel-core/register --require ./test/test_helper.js" 
}, 

を含ん私package.json

変換されたファイルでは、letからに変換されていますは、ノード6.9.4が与えられていると無意味に見えますが、letの使用を完全にサポートしています。

ノード6.9.4以上でコードを実行できる最小限のbabelプラグインは何ですか。また、その母国語の機能を最大限に活用しますか?

答えて

5

最も簡単なオプションはhttps://github.com/babel/babel-preset-envです。あなたはそれをインストールして、あなたのBabelの設定を行うことができます

{ 
    presets: [['env', {targets: {node: true}}]] 
} 

そして、あなたの現在のノードバージョン用のプラグインを自動的に設定します。

+0

面白いと非常にクールなプロジェクト。私はそれを試してみましたが、現在、バベルは 'const'と' let'の両方を 'var'に変換します。これは逆行的なステップのようです。私はいくつか微調整を行ってきましたが、それでも私に 'let'を与えていません。 –

+2

ああ、私は設定をタイプしました、それは' targets: 'であり、' target: 'ではありません。 – loganfsmyth

+1

は完全に機能します。 –

0

あなたが言及した言語機能のセットを考えると、私はあなたがstage-0を必要としないと思います。あなただけのarrow-functionsサポートbabel-preset-es2015destructuringimport文とArrayためspread演算子使用して検討するかもしれない

(それは、この記事の執筆時点でのみstage-3をだとしてObject rest/spreadはまだseparate pluginが必要です)。

TL; DR; - あなたが説明したことについては、おそらくちょうど使用することができると思う:

"babel": { 
    "presets": ["es2015"] 
} 
+0

次の文では、オブジェクトの拡散構文を参照しました。 – zerkms

+1

ああ、ちょっと - あなたはまったく正しい。私はすべてあふれている - キャッチのためにありがとう。 –

+0

拡散演算子とモジュールに 'stage-0'が必要でした。 'node6'は' es2015'に取って代わります。 –

関連する問題