1. 程式人生 > >webpack性能優化-實戰

webpack性能優化-實戰

之一 size als window span 公司 除了 tsp utils

題外話:年初項目重構上線,項目技術棧使用vue+webpack,測試執行整個打包流程需要10分鐘,同時又因涉及三個渠道,部署好環境就需半個小時,這嚴重延誤了上線進度,因此提高webpack構建效率,成為了改善團隊開發效率的關機之一。

正文:

一.抽離項目配置文件

因為項目前後端分離,需要配置接口地址,當時沒有考慮到分離配置文件,造成每次需要打包三次。

基本思路(百度):把配置信息掛在window下,然後寫在一個不打包的js中,頁面單獨引入這個js

1.在dist/static/js/目錄下,新建config.js,內容為:

window.g = {
    serverUrl: ‘http://localhost:8088/‘
}

2.在*.html文件中引入該文件

<script type="text/javascript" src="/static/js/config.js"></script>

3.以上百度到的方法不是很適用公司項目。

原因:(1)公司項目為多頁應用,幾十個頁面,手動添加script標簽有些繁瑣,也不利於更改.

   (2)每次打包前都會使用CleanWebpackPlugin插件來清空dist目錄,新建的config.js,被刪除了。

解決方法:

使用webpack插件add-asset-html-webpack-plugin,在html中註入script標簽

//在項目根目錄下/config/,新建config.js
var AddAssetHtmlPlugin = require(‘add-asset-html-webpack-plugin‘); ...... plugins: [ new AddAssetHtmlPlugin([{ filepath: path.resolve(__dirname, ‘../config‘, ‘config.js‘),//文件本地地址 outputPath: utils.assetsPath(‘js‘),//文件輸出地址 publicPath: ‘/static/js/‘,//標簽中引用的地址 includeSourcemap: false
}]) ]

本來要用這個插件註入DllPlugin第三方依賴庫的,但是因為實際操作中卻沒有提升打包效率,就用在分離配置文件了。

二.使用別名做重定向

三.優化loader配置

webpack性能優化-實戰