国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

壓縮Vue.js打包后的體積方法總結(Vue.js打包后體積過大問題)

2024-05-06 15:44:01
字體:
來源:轉載
供稿:網友

問題

由于這次項目是在初學 Vue 之后的第一個正式項目,沒有考慮到類似 路由懶加載、 按需加載的問題 ,所以呢,也算是沒經驗。

到了這些天,項目寫得差不多了,準備放到服務器測試,才發現這個問題。

優化前:

app.js    2.3MBvendor.js   2.4MBvendor.css  612kBapp.js.map  9.13MBvendor.js.map 16.21MB//不一一列舉....

優化

接下來看看優化方法。

優化步驟1: 不生成.map文件

在 webpack.prod.cong.js 文件下,修改配置項 sourceMap 設置為 false 或者刪除:

new webpack.optimize.UglifyJsPlugin({  compress: {    warnings: false  },  // sourceMap: true //將sourceMap關閉就不會打包出.map文件}),

這樣的話,開發環境就不會生成 .map 文件。

優化步驟2: 按需加載

對于項目中,一些 通用 或者 不是特別差異 的組件可以使用按需加載,在需要的時候加載即可,并且會自動緩存。

這時候需要在 router 文件夾下的 index.js 文件修改路由配置中的 組件引入 方式:

Vue.use(Router)export default new Router({  routes:[{    path:"/",    component:function(resolve){      require(["./../components/Index"],resolve)    }  }]})

這樣的話,這個組件就會在你需要加載的時候才會加載。

優化步驟3: VueRouter的懶加載

官方文檔

在 vue-router 的模塊引入,將默認的 import .. from .. 引入方式,修改為一步。如下:

const Foo = () => import("/Foo.vue)``` 

然后在 `配置路由` 中,和之前一樣使用:

Vue.use(Router)export default new Router({routes:[{path:”/“,component:Foo}]})

優化步驟4:將大的第三方包通過<script>標簽引入

一般將類似 `echarts` 這種比較大的第三方依賴包,通過 `<script></script>` 標簽來引入的話,會很大程度縮小打包的大小。   

但是需要在 `vue` 配置文件這樣配置:

`webpack.base.config.js` 中添加 `不打包` 的包的名稱,這樣打包的時候才不會把這些包一起打包進去:  

module.exports = {  entry:{...},  output:{...},  resolve:{...},  module:{...},  externals:{    "echarts":"echarts" //不打包的包名  }}

然后在 index.html 中用 <script></script> 標簽引入依賴包的CDN或者其他地址。

優化步驟5: 圖片壓縮

這個不用怎么說,有個地址很好用,推薦下:tinypng

優化后

通過這幾步驟,優化完成的每個文件都會縮小好多倍:

app.js    136.2kBvendor.js   213.2kBvendor.css  612kB  //css 這個我還沒辦法app.js.map  0MBvendor.js.map 0MB

更多關于VUE壓縮的方案大家可以看看下面的相關文章

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 花莲市| 朝阳县| 临洮县| 永胜县| 昭苏县| 五峰| 桓仁| 皋兰县| 抚宁县| 青铜峡市| 济阳县| 丰顺县| 维西| 新郑市| 丰城市| 松阳县| 常州市| 台中市| 洪雅县| 洮南市| 台湾省| 阳西县| 珠海市| 五台县| 夏津县| 马关县| 玉树县| 廊坊市| 平和县| 徐闻县| 自贡市| 若尔盖县| 海丰县| 文成县| 任丘市| 桃园市| 永吉县| 潢川县| 玛纳斯县| 文登市| 古交市|