[Webpack 定义解析 | 青训营笔记]

57 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第12天。活动详情:# 伴学笔记创作活动来袭 | 第五届字节跳动青训营

本节课将重点围绕「构建 Webpack 知识体系」这一核心话题展开。在正式学习 Webpack 之前,本节课将解读为什么需要学习 Webpack ,Webpack 的本质是什么以及 Webpack 技术优势等相关知识。

构建Webpack知识体系——高阶前端的必经之路

通过介绍Webpack功能、Loader与Plugin组件设计建立一个知识体系。

  1. Webpack 的本质
  • 前端工程化的重要工具 前端项目由许多资源构成
  • 传统问题:依赖手工,过程繁琐;开发与生产环境一致,难以接入TS和JS新特性;难以接入Less、Sass等工具;JS、图片、CSS资源管理模型不一致;
  • 本质是一种前端资源编译、打包工具
  1. Webpack 优势
  • 多份资源文件打包成一个Bundle
  • 支持Babel、Fslint、TS、CoffeScript等工具
  • 支持模块化处理CSS、图片等资源文件
  • ...

WebPack使用方式

在介绍完 Webpack 是什么之后,本节课将主要带来 Webpack 的使用方法,帮助同学从理论到实践,能够通过代码展示与案例讲解,了解关于 Webpack 的具体使用方法。

  1. 流处理配置

安装:

npm i -D webpack webpack-cli

编辑配置文件:

module.exports={
    entry://定义当前项目的入口
    mode://
    devtool:
    output:{//定义当前项目打包完成后存储的位置
        filname:
        path:
    }
}

执行编译命令:

npx webpack

  1. 核心流程 (递归调用2,3,直至完成整个过程)
  • 入口处理 Get Start:从“entry”开始启动编译流程
  • 依赖解析 Dependencies Lookup:从“entry”开始,根据“require”或“import”等语句找到依赖资源
  • 资源解析 Transform:根据“module”配置调用资源转移器,将PNG、CSS等非标准JS资源转译为JS内容
  • 资源合并并打包 Combine Assets:将转义后的资源内容合并打包为可直接在浏览器运行的JS文件
  1. 如何学习Webpack
  • 入门级:灵活应用
  • 进阶:扩展Webpack
  • 大师:源码级理解Webpack打包原理