不同文件引入相同文件是否会出重复打包?

#1

比如说我有2个公共文件commonA,commonB。
在文件A中引入了commonA,文件B中将两个文件都引入了但是只用了commonB,
这样是否会出现重复打包导致包变大的情况?

#2

会,但可以通过webpack的commonchunk插件提取公共文件,减少打包后的文件体积

#3

我觉得不会,webpack打包给每个import或者require的文件分配了一个id,在一个打包好的bundle文件中,文件之间的互相引用是通过分配的id来require访问的。
如果在多个地方引用了同一个文件,那么他只是引入该文件的id。

1 Like
#4

如果不会为何还要用CommonsChunkPlugin呢?

#5

如果不会为何还要用CommonsChunkPlugin呢

#6

缓存,公共模块是基本不会变的,无论你的bundle.js怎么改,common.js都是那几个。当bundle.js更新的时候,浏览器已经缓存了common.js,可以少请求一些文件。