- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) >
- 基于vue-cli npm run build之后vendor.js文件過(guò)大怎么辦
這篇文章給大家分享的是有關(guān)基于vue-cli npm run build之后vendor.js文件過(guò)大怎么辦的內容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
問(wèn)題
vue-cli npm run build命令默認把dependencies中的依賴(lài)統一打包,導致vendor.js文件過(guò)大,出現首屏加載過(guò)于緩慢的問(wèn)題。
解決方案
像vue、axios、element-ui這些基本上不會(huì )改變的依賴(lài)我們可以把它們用導入,沒(méi)有必要打包到vendor.js中。
1.在項目根目錄index.html使用cdn節點(diǎn)導入
<div id="app"></div> <!-- 先引入 Vue --> <!--開(kāi)發(fā)環(huán)境--> <script src="https://cdn.bootcss.com/vue/2.5.3/vue.js"></script> <!--生產(chǎn)環(huán)境--> <!--<script src="https://cdn.bootcss.com/vue/2.5.3/vue.min.js"></script>--> <!-- 引入組件庫 --> <script src="https://cdn.bootcss.com/axios/0.17.1/axios.min.js"></script> <script src="https://cdn.bootcss.com/element-ui/1.4.10/index.js"></script>
2.項目根目錄下build/webpack.base.config.js中添加externals
externals: { vue: 'Vue', 'element': 'element-ui', 'axios':'axios', },
3.mian.js中import ... from ...就可以去掉了,若沒(méi)去掉webpack還是會(huì )把對應的依賴(lài)進(jìn)行打包。
2018.01.27補充
在項目config/index.js中可以開(kāi)啟gzip壓縮,對打包優(yōu)化也有很大的幫助
1.首先安裝插件 compression-webpack-plugin
cnpm install --save-dev compression-webpack-plugin
2.設置productionGzip: true
// Gzip off by default as many popular static hosts such as // Surge or Netlify already gzip all static assets for you. // Before setting to `true`, make sure to: // npm install --save-dev compression-webpack-plugin productionGzip: true, productionGzipExtensions: ['js', 'css'], // Run the build command with an extra argument to // View the bundle analyzer report after build finishes: // `npm run build --report` // Set to `true` or `false` to always turn it on or off bundleAnalyzerReport: process.env.npm_config_report
3.npm run build執行后會(huì )發(fā)現每個(gè)js和css文件會(huì )壓縮一個(gè)gz后綴的文件夾,瀏覽器如果支持g-zip 會(huì )自動(dòng)查找有沒(méi)有g(shù)z文件 找到了就加載gz然后本地解壓 執行。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系站長(cháng)郵箱:ts@56dr.com進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2 建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站