1. 程式人生 > >(21/24) webpack實戰技巧:webpack對三方類庫的優化操作

(21/24) webpack實戰技巧:webpack對三方類庫的優化操作

1.優化第一步--選用引入方式

在前面的學習中我們對於如何引入第三方類庫(Jquery)推薦了兩種方式,第一種是import引入的方式,第二種是ProvidePlugin外掛。那兩種引入方法有什麼區別那?

  • import引入方法:引用後不管你在程式碼中使用不使用該類庫,都會把該類庫打包起來,這樣有時就會讓程式碼產生冗餘。(引用即打包)

  • ProvidePlugin引入方法:引用後只有在類庫使用時,才按需進行打包,所以建議在工作使用外掛的方式進行引入。 (按需打包)

 因此在日常開發中選用ProvidePlugin外掛的方式進行打包,可在一定程度上減輕程式碼的冗餘。

2.優化第二步--三方類庫分離

2.1 單個三方類庫分離

2.1.1 第一步:修改入口檔案

抽離的第一步是修改入口檔案,把我JQuery加入到入口檔案中:

config/webpack.entry.js檔案:

//宣告entry變數
const entry={};
//宣告路徑屬性
entry.path={
    entry:'./src/entry.js',
    jquery:'jquery'  //需要分離的檔案
};

//進行模組化
module.exports=entry;

2.1.2 第二步:引入外掛

引入optimize優化外掛,並進行相關配置,如下:

new
webpack.optimize.CommonsChunkPlugin({ //name對應入口檔案中的名字,我們起的是jquery name:'jquery', //把檔案打包到哪裡,是一個路徑 filename:"assets/js/jquery.min.js", //最小打包的檔案模組數,這裡直接寫2就好 minChunks:2 }),

minChunks一般都是固定配置,但是不寫是不行的,你會打包失敗。

filename是可以省略的,這是直接打包到了打包根目錄下,我們這裡直接打包到了dist資料夾下的assets/js/下。

配置完成後,我們先刪掉以前打包的dist目錄,然後用webpack再次打包,你會發現jquery被抽離了出來,並且我們的entry.js檔案變的很小。

 

2.2 多個第三方類庫抽離

 在實際開發中,我們會引用不止一個第三方類庫,這時也需要抽離,這裡我們在引入Vue相關操作如下:

2.2.1 安裝Vue

npm instawll vue --save

因為這個類庫需要在生產環境中使用,故採用–save。

2.2.2 修改入口檔案

//宣告entry變數
const entry={};
//宣告路徑屬性
entry.path={
    entry:'./src/entry.js',
    jquery:'jquery' , //需要分離的檔案
     vue:'vue'
};

//進行模組化
module.exports=entry;

相比第一種只是多加了一個vue選項。

 

2.2.3 修改外掛配置

修改CommonsChunkPlugin配置

 需要修改兩個位置:

  • 第一個是在name屬性裡把原來的字串改為陣列,因為我們要引入多個模組,所以是陣列;

  • 第二個是在filename屬性中把我們輸出的檔名改為匹配付[name],這項操作就是打包出來的名字跟隨我們打包前的模組。

修改程式碼如下:

new webpack.optimize.CommonsChunkPlugin({
    //name對應入口檔案中的名字,我們起的是jQuery
    name:['jquery','vue'],
    //把檔案打包到哪裡,是一個路徑
    filename:"assets/js/[name].js",
    //最小打包的檔案模組數,這裡直接寫2就好
    minChunks:2
}),

 

2.2.4 打包

webpack

配置完成後,我們先刪掉以前打包的dist目錄,然後用webpack再次打包,你會發現jquery、vue被抽離了出來。