【问题标题】:Webpack numbered chunks not loading correctly per configWebpack 编号的块没有按配置正确加载
【发布时间】:2015-07-17 18:42:05
【问题描述】:

所以我有两个不同的 webpack 配置,我在一个看起来像这样的数组中传递:

[
    {
        entry: entrypointsIE,
        output: outputIE,
        module: {
            loaders: [
                  // set of loaders that has one difference to load SCSS variables from a different location
            ]
        },
        resolveLoader: resolveLoader,
        resolve: resolve,
        plugins: plugins,
        devServer: devServer
    },
    {
        entry: entrypoints,
        output: output,
        module: {
            loaders: [
                 // loaders all the same as the IE9 except one difference in sass loader    
            ]
        },
        resolveLoader: resolveLoader,
        resolve: resolve,
        plugins: plugins,
        devServer: devServer
    }
]



output = {
    path: '/web/dist',
    filename: '[name].bundle.js',
    chunkFilename: '[id].bundle.js'
};

outputIE = {
    path: '/web/dist',
    filename: '[name].ie.bundle.js',
    chunkFilename: '[id].ie.bundle.js'
};

apps.forEach(function(appName, index) {
    entrypoints[appName] = [ 'webpack/hot/dev-server', appName + '/app' ];
});

appsIE = apps;

appsIE.forEach(function(appName, index) {
    entrypointsIE[appName] = [ 'webpack/hot/dev-server', appName + '/app.ie' ];
});

入口点是完全相同的文件(这就是我认为我的问题所在)。我的 index.html 中有一个条件,如果它检测到 IE,则加载 framework.ie.js,如果没有,则加载 framework.js。这按预期工作。问题是它没有一致地加载编号的块。有时我看到 0.bundle.js 正在加载,有时我看到 0.bundle.ie.js 正在加载(无论是 framework.ie.js 还是 framework.js 已加载)。

有没有办法让它始终加载正确的块,或者有没有办法确保我需要的所有东西都被加载到框架包中,而没有任何块被 webpack 加载?

【问题讨论】:

  • 您可以访问页面的标题吗?
  • 是的,我可以访问标题。

标签: javascript config webpack


【解决方案1】:

找到了解决办法。添加:

new webpack.optimize.LimitChunkCountPlugin({maxChunks: 1}

这样我的入口点块是唯一创建的块,因此逻辑可以正常工作。

【讨论】:

  • 刚刚拯救了这一天。谢谢。
【解决方案2】:

您是否尝试过使用条件 cmets 根据浏览器供应商加载正确的脚本?

<!--[if IE]>
    <script src="framework.ie.js"/>
    <script src="0.bundle.ie.js"/>
<![endif]-->

<!--[if !IE]> -->
    <script src="framework.js"/>
    <script src="0.bundle.js"/>
<!-- <![endif]-->

【讨论】:

  • 问题是 webpack 自己通过 JSONP 加载编号的块。所以它无论如何都会尝试加载它想要的任何东西。
猜你喜欢
  • 1970-01-01
  • 2021-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-01
  • 2015-09-14
  • 2018-06-25
相关资源
最近更新 更多