使用vue打包,vendor文件過大,或者是app.js文件很大


第一次使用vue2.0開發,之前都是用的angular1.x。在使用vue-cli腳手架打包后(UI用的Element-ui),發現vendor文件很大,將近1M左右。。后來翻閱資料才明白,原來webpack把所有的庫都打包到了一起,導致文件很大。

我的解決辦法:

  1、把不常改變的庫放到index.html中,通過cdn引入,比如下面這樣:

中間發現bootcss 提供的 cdn 並不穩定,老是訪問不了導致項目崩潰,這里推薦兩個比較穩定的CDN  jsdelivr 和 unpkg,不知道的可以百度了解一下。

然后找到build/webpack.base.conf.js文件,在 module.exports = { } 中添加以下代碼

externals: {
    'vue': 'Vue',
    'vue-router': 'VueRouter',
    'element-ui': 'ELEMENT',
 },

這樣webpack就不會把vue.js, vue-router, element-ui庫打包了。聲明一下,我把main.js中對element的引入刪掉了,不然我發現打包后的app.css還是會把element的css打包進去,刪掉后就沒了。

然后你打包就會發現vendor文件小了很多~

如果你還不滿足,請接着往下看·····

 

2、vue路由的懶加載(具體作用,官網查看哦,這里就不多介紹了)。

剛開始我們使用路由可能是下面這樣(router.js),這樣一開始進入頁面就會把所有的路由資源都加載,如果項目大,加載的內容就會很多,等待的時間頁就會越長,導致給用戶的不好的體驗效果。

為了把路由分模塊,然后每次進入一個新頁面才加載該頁面所需要的資源(也就是異步加載路由),我們可以像下面這樣使用(router.js):

然后你打包就會發現,多了很多1.xxxxx.js;2.xxxxx.js等等,而vendor.xxx.js沒了,剩下app.js 和manifest.js,而且app.js還很小,我這里是100k多一點。

這里我沒有生成map文件,這樣打包速度快一些,整個項目文件也小很多(map文件一般都很大);

取消生成map文件,找到config/index.js ,修改下面箭頭指向為false,就行了。

剛開始使用,一路磕磕碰碰在所難免,也借鑒了很多前輩們的經驗,所以在這里記錄一下,希望能幫到更多的人。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM