2017-01-25 6 views
16

polyfillの方法fetchpromiseWebpack 2ですか?webpack 2でpolyfillをフェッチして約束する方法は?

私はエントリポイントをたくさん持っているので、各エントリポイントの前にそれらを追加するWebpackの一方的な方法は望ましいソリューションではありません。

+3

:ここ

は私が(ちょうど、関連する設定オプションを示す)やったアプリからのサンプルですか?それらはpolyfillであるため、モジュールはそれらをインポート/要求しません。 – lorefnon

+0

バンドルの前にpolyfillを1つのファイルとしてロードすることを意味しますか(SPAが1ページ= 1バンドルではありません)なぜエントリーポイントが多いのですか?はいの場合 - もう1つのGETリクエスト= /とにかく、いいヒント、ありがとう。 – bravedick

答えて

3

私は正しく理解していないかもしれませんが、あなたのwebpack設定の残りのエントリポイントの前にbabel-polyfillを追加するだけでいいですか?

module.exports = { 
    entry: ['babel-polyfill', './app/js', '/app/js/whatever'] 
}; 
+0

のエントリはオブジェクトです:https://webpack.js.org/guides/code-splitting-libraries/#multiple-entriesだから私はそれらの間にたくさんのキーをコピーして貼り付けなければなりません。私は何かを探していて、各エントリーポイントのためにそれらを自動的にインポートしていました。 – bravedick

+0

私の経験では、アプリケーションの起動時に 'import 'babel-polyfill'を通常は' index.js'ファイルに追加するか、webpackの中で手動で各エントリーポイントに追加する必要があります。ほとんどのアプリケーションでは起動ポイントが1つしかなく、polyfillの追加を続ける必要がないため、前者を使用することを強くお勧めします。 –

+4

FYI:babel-polyfillにはフェッチが含まれていません – Andrew

11

かかわらず、あなたが持っているどのように多くのエントリポイントの、あなたのベンダーのそのようなフレームワークなどのファイル、(whatevs、角度反応する)とあなたが常に必要がありますが、ほとんど変更するつもりはないされているすべてのライブラリ用に別のファイルを持っている必要があります。それらを別々のバンドルとして、キャッシュすることができます。そのバンドルは常にロードする必要があります。そのバンドルに含めるものは、常に使用可能ですが、commonChunksPluginで使用すると、チャンク内で繰り返されることはありません。あなただけの単一のエントリとしてpolyfillsが含まれていないのはなぜ

module.exports = { 
    entry: { 
    client: 'client', 
    vendor: [ 
     'react', 
     'react-addons-shallow-compare', 
     'react-addons-transition-group', 
     'react-dom', 
     'whatwg-fetch' 
    ] 
    }, 
    output: { 
    path: `${__dirname}/dist`, 
    filename: '[name].js', 
    publicPath: '/build/' 
    }, 
    plugins: [ 
    new webpack.optimize.CommonsChunkPlugin({ 
     names: ['vendor', 'manifest'] 
    }) 
    ] 
} 
+0

答えをありがとうございます。バウンティはすぐに期限が切れるので、私はあなたに答えを出しますが、誰かが別の方法をとっているなら、あなたの歓迎です;) – bravedick

+0

十分に公正です。恩恵をいただきありがとうございます – shadymoses