Webpack

76 阅读2分钟

Webpack|青训营笔记 这是我参与【第四届青训营】笔记创作活动的第4天

  • 什么是Webpack
  • 打包核心流程
  • 关键配置项介绍
  • Loader组件
  • Plugin组件
  • 如何学习Webpack
  1. 理解Webpack的基本用法
  2. Loader\Plugin组件设计
  • 前端项目由代码资源构成,曾经需要手动管理资源,当外部资源很多时需要写很多标签,从而限制了页面规模
  • 出现工程化工具:Vite\browserify等,这些工具的出现带来了“前端工程”这一概念
  • Webpack本质上是一种前端资源编译、打包工具:多份资源文件打包成一个Bundle,支持持续监听、持续构建,支持代码分离、支持Sourcemap\Babel\Eslint\TS\CoffeScript\Less\Sass等
  • 使用Webpack:安装-编辑配置文件-执行编译命令
  • entry:当前项目入口、output:当前项目最终打包后放到了哪里,相当于出口
  • 核心流程:1.入口处理(读文件、启动编译的过程);2.依赖解析(根据‘require’or'import'等语句找到依赖资源);3.资源解析(根据‘module’配置,调用资源转移器,将png\css等非标准JS资源转译为JS内容);4.资源合并加打包(将转译后的资源内容合并打包为可直接在浏览器上运行的JS文件)
  • 模块化+一致性
  • 配置分为两类(在使用时主要思考我要怎么写配置文件):流程类(作用于流程中某个or若干个环节,直接影响打包效果的配置项);工具类:主流程之外,提供更多工程化能力的配置项
  • 跟流程类强相关的:输入(‘entry’'context');模块解析(‘resolve’'externals');模块转译(‘module’);后处理(‘optimization’'mode''target')
  • 使用Webpack--处理CSS:1.安装Loader;2.添加'module'处理CSS文件
  • 使用Webpack--接入Bable:1.安装依赖;2.声明产物出口'output';3.执行'npx webpack'
  • Loader:其他特性:链式执行;支持异步执行;分normal\pitch