webpack
打包的過程種茂卦,生成的JS文件
,每一個(gè)JS文件
我們都把它叫做Chunk
组哩。
我們可以看下打包的過程
main.js
的chunk Name
是main
vendors~lodash.js
的chunk Name
是vendors~lodash
所以等龙,每個(gè)JS文件,實(shí)際上都是
Chunk
Chunk
有什么意義呢伶贰?
假設(shè)我們配置的minChunks
是2
假設(shè)我們要引入lodash
這個(gè)第三方的庫蛛砰,那么到底要不要對它進(jìn)行代碼分割呢?可以比對它是否符合我們的配置條件
lodash
對于chunks和minSize配置都是滿足的黍衙,但是它能不能滿足minChunks
呢泥畅?怎么來判斷呢? 假設(shè)我們整個(gè)項(xiàng)目打包運(yùn)行過后琅翻,在dist
目錄下會(huì)生成很多個(gè)Chunk
文件位仁,那如果有2個(gè)以上的文件需要lodash
,那么就需要對lodash
進(jìn)行Code Spliting
,也就是單獨(dú)生成一個(gè)lodash.js
這樣的文件來實(shí)現(xiàn)代碼分割方椎。
假如生成的多個(gè)Chunk
文件 障癌,只有一個(gè)Chunk
文件用到了lodash
這個(gè)庫,而我們的minChunks
是2辩尊,那么lodash
就不會(huì)被代碼分割涛浙。
還有就是,一般情況下摄欲,我們只需要配置chunks
為all
就可以啦
因?yàn)楫?dāng)我們不配置其他的時(shí)候轿亮,其他配置就是默認(rèn)項(xiàng)。
chunks
默認(rèn)值是async
胸墙,如果我們想同步和異步的都進(jìn)行代碼分割我注,需要改為all;如果就是想要做自己風(fēng)格的代碼分割的話,可以去進(jìn)行詳細(xì)配置迟隅。