2017-08-09 12 views
0

はWebPACKの2つのベンダーのバンドルを作成しようとした私は、サーバー上で、最終的なスクリプトを実行したときに、このエラーが起こった:複数のWebPACKベンダーバンドル

vendor1.369f8f5….js:1 Uncaught TypeError: Cannot read property 'call' of undefined 
    at t (vendor1.369f8f5….js:1) 
    at Object.<anonymous> (main.369f8f5….js:1) 
    at Object.<anonymous> (main.369f8f5….js:1) 
    at t (vendor1.369f8f5….js:1) 
    at Object.<anonymous> (main.369f8f5….js:6) 
    at t (vendor1.369f8f5….js:1) 
    at window.webpackJsonp (vendor1.369f8f5….js:1) 
    at window.webpackJsonp (vendor2.369f8f5….js:1) 
    at main.369f8f5….js:1 

これは私のwebpack.configです:

entry: { 
    /* Material Design Lite (https://getmdl.io) */ 
    // '!!style-loader!css-loader!react-mdl/extra/material.min.css', 
    // 'react-mdl/extra/material.min.js', 
    /* The main entry point of your JavaScript application */ 
    main:'./main.js', 
    vendor1:['react','router','mixpanel-browser','react-dom','preact','preact-compat'], 
    vendor2:['core-js','fastclick','whatwg-fetch','axios',], 
    // vendor3:['core-js'], 
    // vendor4:['mixpanel-browser'], 
    }, 

.. ....

new webpack.optimize.CommonsChunkPlugin({ 
    name: "vendor1", 
    chunks:['main'], 
    minChunks:Infinity, 
}), 
new webpack.optimize.CommonsChunkPlugin({ 
    name: "vendor2", 
    chunks:['main'], 
    minChunks:Infinity, 
}), 

これらの3つのバンドルを正常に作成できましたが、サーバで実行してもうまくいかなかったのです。 enter image description here

私が1つのベンダーと1つのメインバンドルを持っている場合、それは完璧です。しかし、私は小さなファイルサイズのための第2のベンダーバンドルを作成していません。ソリューションをオンラインで検索しましたが、どれもうまくいきませんでした。たぶんそれは私の構文と関係がありますか?

+0

解決済みでしたか? – ArtemSky

+0

@ArtemSky私は最後に2つのバンドルと一緒に行かなければならなかった、それ以上のものを分けることはできない。 – whales

答えて

0

私は私の解決策は...

あなたはvendor1vendor2の両方のための単一webpack.optimize.CommonsChunkPluginを使用してみます仕事をしたりしませんかわかりません。

new webpack.optimize.CommonsChunkPlugin({ 
    name: ["vendor1","vendor2"], 
    chunks:['main'], 
    minChunks:Infinity, 
}), 
+0

このようにした場合、メインバンドルはベンダーモジュールを除外しません。したがって、バンドル間で重複モジュールを使用してファイルサイズを縮小するという目的は達成できません。おかげで:)私は文字通りこのすべての異なるコンボを試した – whales

関連する問題