Webpack 知识体系|青训营笔记

105 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第12天。本节课的主题是【Webpack 知识体系】,授课老师为范文杰。

本篇笔记分别对课程中所讲的几个要点进行一些解读,如若有误,欢迎大家在评论区交流,指出不当之处。

为什么要学习Webpack

  • 理解 前端工程化 的概念、工具、目标
  • 成为竞争力
  • 高阶前端必经之路

01. 什么是Webpack

前端由各种资源文件构成

Webpack本质上是一种前端资源编译、打包工具。

image.png

02. 使用实例

  1. 安装依赖:webpack与webpack-cli
  2. 编辑配置文件
  3. 执行编译命令

核心流程简化版:

  1. 入口处理
  2. 依赖解析
  3. 资源解析:将css png等非JS资源转换为JS内容
  4. 资源合并打包

(递归调用2、3,直到所有资源处理完毕)

模块化+一致性

image.png

Webpack的使用方法围绕“配置”展开

  • 流程类:作用于流程中某个or若干个环节,直接影响打包效果的配置项
  • 工具类:主流程外,提供更多工程化能力的配置项

image.png

处理CSS:

module里配置rules(使用依赖-style-loader css-loader)

问题:

  • Loader的作用?
  • 与旧时代方法对比有什么优缺点?
  • 如何处理预编译框架

接入Babel:使低版本浏览器兼容高版本JS

Babel:转译工具

  1. 安装依赖(babel…)
  2. 配置文件

生成HTML:

使用依赖-html-webpack-plugin

工具线

HMR:模块热替换,更改代码后无需刷新页面就编译完成

Tree-Shaking:删除Dead Code,对工具类库有奇效

其他工具:

  • 缓存
  • Sourcemap:映射源代码,线上调试必备
  • 性能监控
  • 日志
  • 代码压缩
  • 分包

03. 进阶:理解Loader

为了处理非标准JS资源,设计出资源翻译模块-Loader

用于将资源翻译成JS

链式调用:

image.png

image.png

04.进阶:理解插件

插件围绕“钩子”展开

image.png

开发插件:关注时机、参数、交互

05.学习方法

01.入门

  • 理解打包流程
  • 熟练配置、插件的使用方法
  • 掌握常用脚手架的的用法

image.png

02.进阶

  • 理解机制,能够自行开发组件
  • 掌握常见性能优化手段,能用于解决实际问题

03.大师

阅读源码,理解编译打包原理