Webpack 2中一些罕见的优化步伐
星散第三方依靠
在开辟环境下, 一般会采纳 HMR 形式来进步开辟效力. 但平常情况下, 我们只会变动本身的营业文件, 不会去变动第三方的依靠, 但 webpack 在 rebuild 的时刻, 依旧会 build 一切的依靠. 因此, 为削减 rebuild 的时候, 我们能够星散第三方依靠, 在项目启动之前, 将其零丁打包和引入.
多历程构建
Webpack的构建历程是单历程的,运用HappyPack能够让loader对文件举行多历程处置惩罚,以此加速rebuild速率
提取大众的依靠模块
无论是单页照样多页运用,在临盆环境下,一般都邑运用CommonsChunkPlugin插件来供应大众的依靠模块。然则这类体式格局会致使两个题目:1.营业越庞杂,第三方依靠会越多,vendor包会越大;2.没有断绝营业路由组件,一切的路由都可能会去加载vendor,但并非一切的路由组件都邑依靠node_module下的一切模块。所以我们应当剖析营业依靠和路由,尽可能将一切组件的大众依靠提取出来。
文件星散
文件星散主假如将图片和CSS从js中星散。图片和CSS都是Webpack须要构建的资本,经由过程某种设置,图片能够以base64的体式格局殽杂在js文件中,这会增添终究的bundle文件的大小。在临盆环境下,能够斟酌将图片和css从js中星散。
在临盆环境下,经由过程自定义插件,将图片的当地援用替换为CDN的链接
在临盆环境下,经由过程ExtractTextPlugin来提取CSS
资本殽杂和紧缩
Webpack供应的UgligyJS插件因为采纳单线程紧缩,速率比较慢,能够运用Prarllel插件举行优化
Gzip紧缩
在临盆环境下,假如想进一步削减bundle文件的大小,能够运用Gzip紧缩
按需加载
在单页运用中,一个运用可能会对应许多路由,每一个路由都邑对应一个组件;假如将这些组件悉数放入一个bundle文件中,会致使终究的bundle文件比较大,因此,我们须要运用Webpack的Code Splitting功用,将代码举行支解,完成路由的按需加载。