构建Webpack知识体系 | 青训营笔记

114 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第八天

什么是Webpack

Webpack 是一种用于构建 JavaScript 应用程序的静态模块打包器,它能够以一种相对一致且开放的处理方式,加载应用中的所有资源文件(图片、CSS、视频、字体文件等),并将其合并打包成浏览器兼容的 Web 资源文件。

Webpack 忽略具体资源类型之间的差异,将所有代码/非代码文件都统一看作 Module —— 模块对象,以相同的加载、解析、依赖管理、优化、合并流程实现打包,并借助 Loader、Plugin 两种开放接口将资源差异处理逻辑转交由社区实现,实现统一资源构建模型,这种设计有很多优点:

  • 所有资源都是 Module,所以可以用同一套代码实现诸多特性,包括:代码压缩、Hot Module Replacement、缓存等;
  • 打包时,资源与资源之间非常容易实现信息互换,例如可以轻易在 HTML 插入 Base64 格式的图片;
  • 借助 Loader,Webpack 几乎可以用任意方式处理任意类型的资源,例如可以用 Less、Stylus、Sass 等预编译 CSS 代码。

使用Webpack

实例

1660007860002.png

核心流程————极度简化版

1660008027376.png

模块化 + 一致性

image.png

使用Webpack

  • 关于Webpack的使用方法,基本都围绕“配置”展开,而这些配置大致可分为两类:
    • 流程类:作用于流程中某个or若干个环节,直接影响打包效果的配置型
    • 工具类:主流程之外,提供更多工程化能力的配置项

image.png

使用Webpack————流程类配置

1660008399015.png

使用Webpack————配置总览

image.png

使用Webpack

1660008485838.png

使用Webpack————处理CSS

1660008536759.png

使用Webpack————接入Babel

1660008669398.png

使用Webpac————生成HTMl

1660008792436.png