2017-08-09 106 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, 
}), 

我可以成功创建这三个捆绑包,但在服务器上运行时无法工作。 enter image description here

当我只有一个供应商和一个主包时,这很好。但是,我无法为较小的文件大小创建第二个供应商捆绑软件。已经在网上搜索解决方案,但没有任何工作。也许它与我的语法有关?

+0

是否找到任何解决方案? – ArtemSky

+0

@ArtemSky nope。我不得不与两个捆绑到底,不能分割更多。 – whales

回答

0

我不知道我的解决方案将工作或不...

你会尝试使用单webpack.optimize.CommonsChunkPlugin两个vendor1vendor2

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

如果我这样做,主包不会排除供应商模块。所以它不会达到通过捆绑包重复模块减小文件大小的目的。谢谢虽然:)我已经从字面上尝试了所有不同的组合 – whales