最近在弄公司的老項目,這個項目是之前我自己搭建的,由于當時react不是很熟練,也沒有獨自搭建大型react項目的經驗,只能照葫蘆畫瓢搭起了一個項目,然而隨著業務的復雜,每次啟動項目都要等好幾分鐘,項目打包上線也要200多秒,最近終于想把這個問題徹底解決一下,于是查看打包后的文件發現有30M,這也太大了。進去build
目錄,看到里面有一個map文件很大,肯定是這里出了問題,查閱資料得知,map文件是webpack的在devtool的sourceMap中配置的,便于定位錯誤的問題。于是在webpack.config.js
中增加了GENERATE_SOURCEMAP=false
這個環節變量,在生產環境中去掉了生成的map文件。
然后我又重新進行了打包操作,發現包的體積確實變小了,成了5點多M,然而打包時間卻并沒什么變化,不行,還得繼續搞,看了一些文章,說是配置dll可以把第三方包單獨打包成一個模塊,下次不用再打包這些第三方庫,這樣就大大節省了打包時間,然而,dll的配置卻異常的繁瑣,查詢了其他的文章,最后發現hard-source-webpack-plugin
這個插件,配置更簡單
const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
module.exports = {
// ......
plugins: [
new HardSourceWebpackPlugin() // <- 直接加入這行代碼就行
]
}
只需上面幾行代碼,然后打包測試,第一次打包有原來的200S變成了45S,然后有執行了一次變成了15S,速度提升了好多倍
參考文章