webpack3插件CommonChunkPlugin分离vantUI和echarts,问题的webpackJsonp is not defined解决!!!

webpack3插件CommonChunkPlugin分离vantUI和echarts和报错webpackJsonp is not defined的解决

前景:因为项目使用的webpack3开发的场景,打包后的vendor很大,如图显示


如果不做gzip处理的话,大小在2M多,gzip后的大小是600KB,但是考虑里面还包括各种公共包,所以对vendor文件再拆分处理;

默认打包的代码如下:

javascript 复制代码
webpack.prod.conf.js 默认配置如下:

new webpack.optimize.CommonsChunkPlugin({
  name: 'vendor',
  minChunks(module) {
     return module.resource && 
     	/\\.js$/.test(module.resource) &&
     	module.resource.indexOf(path.join(__dirname, '../node\_modules')) ===0
     }
}),
new webpack.optimize.CommonsChunkPlugin({
    name: 'manifest',
    minChunks: Infinity
})
new webpack.optimize.CommonsChunkPlugin({
    name: 'app',
    async: 'vendor-async',
    children: true,
    minChunks: 2
})

修改webpack.prod.conf.js 配置如下:

javascript 复制代码
new HtmlWebpackPlugin({
       filename: config.build.index,
       template: 'index.html',
       inject: true,
       minify: {
           removeComments: true,
           collapseWhitespace: true,
           removeAttributeQuotes: true
        },
      chunks: ['manifest', 'vendor', 'vendor_echarts', 'vendor_vantUI', 'app'], // 更改此行配置,按照依赖关系从左至右书写
      chunksSortMode: 'manual' //更改此行配置,上面的配置无效的原因就是配置了非此值
 })

newwebpack.optimize.CommonsChunkPlugin({
  name: 'vendor',
  minChunks(module) {
     return module.resource && 
     	/\\.js$/.test(module.resource) &&
     	module.resource.indexOf(path.join(__dirname, '../node\_modules')) ===0
     }
}),
new webpack.optimize.CommonsChunkPlugin({
    name: 'vendor_echarts',
    chunks: ['vendor'],
    minChunks(module) {
        return module.resource && /vant/.test(module.resource)
    }
}) 
new webpack.optimize.CommonsChunkPlugin({
    name: 'vendor_vantUI',
    chunks: ['vendor'],
    minChunks(module) {
        return module.resource && /echarts/.test(module.resource)
    }
})
new webpack.optimize.CommonsChunkPlugin({
    name: 'manifest',
    chunks: ['vendor', 'vendor_echarts', 'vendor_vantUI', 'app'],
    minChunks: Infinity
})
new webpack.optimize.CommonsChunkPlugin({
    name: 'app',
    async: 'vendor-async',
    children: true,
    minChunks: 2
})



注意要和上面配置一样才行,不然后续会报错这个问题 !!!
webpackJsonp is not defined !!!


最终打包后效果如下图:


最后项目运行在生产没问题!!!

非常感谢这个大佬的处理,也是按照他的方案搞定的,感谢!

webpack3插件CommonChunkPlugin分离ElementUI和Echarts

相关推荐
Q***f6354 小时前
前端动画性能优化,60fps实现技巧
前端
艾莉丝努力练剑4 小时前
【自动化测试实战篇】Web自动化测试实战:从用例编写到报告生成
前端·人工智能·爬虫·python·pycharm·自动化·测试
Mintopia4 小时前
💥 Trae Solo 编程 vs. Cursor:新机遇与新挑战
前端·人工智能·trae
Sapphire~4 小时前
JavaScript 数组方法的系统方法: 分类理解 + 形象化记忆的方法
javascript
Mintopia4 小时前
🌌 长上下文 AIGC 的性能瓶颈:Web 端技术的突破与妥协
前端·人工智能·trae
天蓝色的鱼鱼4 小时前
前端小白Express入门:初识Web框架与项目搭建
前端·node.js·express
一只小阿乐4 小时前
react 点击事件注意事项
前端·javascript·react.js·react
Mike_jia4 小时前
EMQX:开源MQTT消息中间件王者,百万级物联网连接的首选引擎
前端
xiaoxue..4 小时前
深入理解JavaScript中的深拷贝与浅拷贝:内存管理的艺术
开发语言·前端·javascript·面试
Mapmost4 小时前
【高斯泼溅】深度解析Three.js 加载3D Gaussian Splatting模型
前端