博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Webpack 2 中一些常见的优化措施
阅读量:6174 次
发布时间:2019-06-21

本文共 902 字,大约阅读时间需要 3 分钟。

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功能,将代码进行分割,实现路由的按需加载。

参考文章:

转载地址:http://wlqba.baihongyu.com/

你可能感兴趣的文章
【C#】Lambda
查看>>
C# Dictionary使用
查看>>
Hello World
查看>>
Reboot分享第二期(已结束)
查看>>
arttemplate 模板语法
查看>>
HLS 与 FFMPEG
查看>>
double to long
查看>>
用二次函数研究三次多项式函数的零点问题【中阶和高阶辅导】
查看>>
CSS3之------box-shadow属性使用方法(1),即单边阴影效果设置
查看>>
数理统计初步---从协方差到PCA算法步骤详解
查看>>
Android:数据库SQLite基本操作(增删改查)
查看>>
opensns账户写入问题
查看>>
0523上传文件
查看>>
使用到的工具类
查看>>
Android深入理解Context(一)Context关联类和Application Context创建过程
查看>>
JavaScript 复杂判断的更优雅写法
查看>>
sqlite3数据库最大可以是多大?可以存放多少数据?读写性能怎么样?
查看>>
js 判断数据是否为空
查看>>
hdu 3033
查看>>
通过DOS、SHELL批处理命令加载Lib并编译和打包Java项目(或者运行项目)
查看>>