Vue組件庫優化

開發基於Element UI的Vue擴展組件,在組件中使用了lodash庫來處理集合對象,使用moment庫來處理日期對象。只實現了幾個組件,發佈出來的npm包卻有1M+,查看發佈後的js文件,發現vue cli將lodash和moment的代碼打包編譯到了組件js文件中。
於是就想到了優化一下組件。

優化lodash

首先想到的就是不使用lodash庫,將使用lodash實現的邏輯部分使用原生的JavaScript替換,然後再發布發現組件已經減小了很多。
移除lodash後
圖片


優化moment


對於moment庫,它本身含有很多的locale文件,用來支持其國際化功能。moment庫對與項目來將還是比較大的。對於moment的優化,就使用另外一種的優化手段:使用外部moment。

再vue.config.js中配置:


configureWebpack: {
 externals: {
   moment: 'moment'
 }
}




告訴Vue CLI對用moment庫,我們使用外部的,不需要打包進組件。僅僅告訴了Vue CLI,還要再index.html中增加moment相關的引用:

<script src="https://cdn.bootcss.com/moment.js/2.24.0/moment.min.js"></script>

配置完成後,我們再次編譯:
圖片

可以看到優化的效果還是非常明顯的,直接優化掉了80%+的包大小。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章