这是我参与「第四届青训营 」笔记创作活动的第八天
什么是Webpack
Webpack 是一种用于构建 JavaScript 应用程序的静态模块打包器,它能够以一种相对一致且开放的处理方式,加载应用中的所有资源文件(图片、CSS、视频、字体文件等),并将其合并打包成浏览器兼容的 Web 资源文件。
Webpack 忽略具体资源类型之间的差异,将所有代码/非代码文件都统一看作 Module —— 模块对象,以相同的加载、解析、依赖管理、优化、合并流程实现打包,并借助 Loader、Plugin 两种开放接口将资源差异处理逻辑转交由社区实现,实现统一资源构建模型,这种设计有很多优点:
- 所有资源都是 Module,所以可以用同一套代码实现诸多特性,包括:代码压缩、Hot Module Replacement、缓存等;
- 打包时,资源与资源之间非常容易实现信息互换,例如可以轻易在 HTML 插入 Base64 格式的图片;
- 借助 Loader,Webpack 几乎可以用任意方式处理任意类型的资源,例如可以用 Less、Stylus、Sass 等预编译 CSS 代码。
使用Webpack
实例
核心流程————极度简化版
模块化 + 一致性
使用Webpack
- 关于Webpack的使用方法,基本都围绕“配置”展开,而这些配置大致可分为两类:
- 流程类:作用于流程中某个or若干个环节,直接影响打包效果的配置型
- 工具类:主流程之外,提供更多工程化能力的配置项