webpack require.ensure 如何抽取公共模块

在开发react的项目,打包上遇到这个问题
多个按需加载的模块都引入了 地区静态文件,大概500kb左右
import areaJson from './areaJson.js'
打包后发现,这个areaJson.js是被分别打包了,
请问如何配置webpack使按需加载模块中引用的包也能自动抽取出来

阅读 2k
1 个回答

请问 你这个问题解决了吗,我目前可以做到抽离了,但是感觉有点奇葩。我使用的方式是:
entry: {
areaJson:“./areaJson.js”
}
plugins: [

  new webpack.optimize.CommonsChunkPlugin({
  name: 'vendor',
  minChunks:2,
}),

]

简单来说就是先把areaJson打包成独立的chunk,这样webpack在使用 require.ensure 的时候会发现areaJson已经被打包成chunk它就不会再把areaJson打包进每个分离的chunk中。但是有个奇葩的地方:areaJson.chunk 可能只是个壳(里面只包含了一句webpackjsonp的调用),其主要内容被打包到vender(这才是我们想要的公共chunk)中了。总是感觉多了个壳怪怪的,目前我还是知道如何做到areaJson全部放到vender中。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题