2016-11-10 7 views
0

babelがES6をES5に変換してES5ファイルを出力すると、アプリ出力ファイルに正確にES5コードが含まれているとブラウザでポリフィルファイルを含める必要がある?babelでES6〜ES5をコンパイルするときにブラウザにポリフィルファイルが必要な理由

+0

ES5を適切にサポートしていないブラウザでは、ポリフィルだけが必要です。 – evolutionxbox

+4

@evolutionxboxこれは正しくありません。あなたは文法を簡潔にしますが、ポリフィル機能は不要です。 – pawel

答えて

1

BabelはES6(およびそれより新しい)コードをES5コードに変換します。たとえば、矢印機能(() => {})をES5関数(function() {})に書き換えます。しかし、ES6は新しい構文だけではありません。

https://babeljs.io

バベルは唯一、あなたがそのような約束やString.padStartなどの新しいネイティブメソッド(左パッドのような新しいグローバルをサポートするために、バベル-ポリフィルを使用することができます構文(矢印関数のように)変換しているので)。それはコアjsと再生器を使用します。詳細はbabel-polyfillのドキュメントをご覧ください。

すべての新しい機能は、ポリフィルで実装する必要があります。これらのポリフィルは、プロジェクトにグローバルに含める必要があります。それ以外の場合、ES6関数のすべての使用は、ES5コードでのその関数の実装に置き換えられます。例えば、 Array#findIndexを10回実行すると、変換されたコードにも実装が10回含まれます。そのため、ポリフィルはグローバルに追加する必要があり、蒸散工程によって追加されるだけではありません。

関連する問題