webpack必学,webpack优化详解(持续更新)

首先我们来介绍几个概念

1webpack独立配置

因为wenpack不仅仅是打包的工具,它有着两种模式,一种是开发模式dev,一种是生产模式product

我们在配置的时候会按照需求不同,进行独立配置。会配置一个公共的,叫做webpack.base.confing.js,还有一个dev和peoduct的。使用配置时使用merge

在这里插入图片描述
当我们需要dev: base + dev
当我们需要product: base + product

2打包的流程

我们打包,输入命令npm run build,然后开始打包。其中的步骤
1使用clean-webpack-Plugin插件,清除之前生成的打包文件
2使用plugin,生成新的文件
3生成manifest.js文件,对打包前的src文件和打包后的bundle文件的映射关系进行记录,并且跟踪。并通过该文件来解析和加载引入的模块。(模块: 例如引入的css或者是js等)
4ventor.js,对第三方库进行抽离
5app.js页面的压缩文件

3sourceMap(开发体验优化)

报错时,用来显示源码中哪一个文件下,哪一行出现了错误。用来记录打包前源码的位置和打包后的位置映射关系。用于开发时报错。

4webpack-dev-serve(开发体验优化)

是我们前端的一个简单的web服务器,把我们的代码放在服务上,并对其进行监听。我们运行代码npm run dev或者是npm run start 的时候,本质上是开启了webpack-dev-serve服务
在这里插入图片描述

5HMR(热更新)(开发体验优化)

替换更新的代码,并进行监听

6tree shaking(自带的打包特性)(打包体积优化)

移除导出了,但没有引用的代码,减少打包的体积

7代码分离(打包体积优化)

8公共依赖抽离(打包体积优化)

9动态导入(打包体积优化)

10懒加载(性能优化)

当用户点击了,触发的时候调用js的时候再对其js文件进行加载

11缓存(打包速度优化)

当我们加载了资源之后,我们进行缓存,文件名中会加入hash值,当我们更新资源的时候,hash值改变。我们就会重新加载新的资源。

12缩小文件查找的范围(优化打包速度)

13使用DLLPlugin(优化打包的速度)

使用动态链接库,把第三方,不更新的包进行分离,单独打包之后,进行引入到webpack中。
需要理解DLLPlugin,我们就先要理解DLL的概念
DLL称为动态链接库,你可以把它看作函数的集合,当我们需要调用DLL其中的函数时,我们先引入DLL,之后得到函数的地址(饮用)。对函数直接进行调用。很好的诠释了动态,链接(地址),库这几个词。

**DLL文件中存放的是各类程序的函数(子过程)实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数的地址,最后进行调用。**使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才从DLL中取出。另外,使用DLL文件还可以减小程序的体积。

14happyPack(优化打包的速度)

打包时,使用多进程,加快打包的速度。我们的js是单线程的,无法打破单线程的壁垒。但是我们的电脑是多核的,同时可以处理多个进程。所以使用多进程打包。

15parelleUginlifyPlugin(优化打包的速度)

使用多进程对js代码的解析ATS以及js代码的压缩

16打包性能可视化分析

优化分
1开发体验优化
2打包速度和体积优化

未完,待续中。。。。。。

最后附上大佬的解析文档:深入浅出webpack
官网文档: webpack文档

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值