Webpack | 青训营笔记

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: Webpack | 青训营笔记

为什么要学习Webpack

  • 理解前端“工程化”概念、工具、目标
  • 一个团队总要有那么几个人熟悉Webpack,某种程度上可以成为个人的核心竞争力
  • 高端前端必经之路


什么是webpack?

  • 本质上是一种前端资源的编译,打包工具。它将根据模块的依赖关系,进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。
  • Webpack 可以将多种静态资源 js、css、less 转换成一个静态文件,减少了页面的请求。


前端管理资源时

  • 依赖手工,比如有50个JS文件...操作,过程繁琐
  • 当代码文件之间有依赖的时候,就得严格按依赖顺序书写
  • 开发与生产环境一致,难以接入TS或JS新特性
  • 比较难接入Less、Sass等工具
  • JS、图片、CSs资源管理模型不一致


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

  • 多份资源文件打包成一个 Bundle
  • 支持Babel、Eslint、 TS、CoffeScript、 Less、 Sass
  • 支持模块化处理css、图片等资源文件
  • 支持HMR+开发服务器
  • 支持持续监听、持续构建
  • 支持代码分离
  • 支持 Tree-shaking
  • 支持Sourcemap


微信截图_20221112154329.png


webpack流程

  1. 入口处理
    从'entry'文件开始,启动编译流程
    输入:'entry','context'
  2. 依赖解析
    从'entry'文件开始,根据'require'or'import'等语句找到依赖资源
    模块解析:'resolve','externals'
  3. 资源解析
    根据'module'配置,调用资源转移器,将png.css等非标准JS资源转译为JS内容
    模块转译:'module'
  4. 资源合并打包
    将转译后的资源内容合并打包为可直接在浏览器运行的JS文件
    后处理:'optimization','mode','target'


模块化 + 一致性

  1. 多个文件资源合并成一个,减少HTTP请求数
  2. 支持模块化开发
  3. 支持高级JS特性
  4. 支持Typescript,CoffeeScript方言
  5. 统一图片,CSS,字体等其他资源的处理模型
  6. Etc


Webpack 的基本使用方法

  1. 安装 npm i -D webpack webpack-cli
  2. 编辑配置文件
  3. 执行编译命令 :npx webpack

微信截图_20221112154339.png


流程

  1. 入口处理 :从 entry 开始,启动编译流程
  2. 依赖解析 :从 entry 的文件开始,根据 requireimport 等语句找到依赖资源
  3. 资源解析 :根据 module 的配置,调用资源转移器,将 pngcss 等非标准 JS 资源转译为 JS 内容
  4. 资源合并打包 :将转译后的资源内容合并打包为可直接在浏览器运行的 JS 文件



目录
相关文章
|
6月前
|
域名解析 JavaScript 前端开发
TypeScript笔记(3)—— 使用WebPack工具
TypeScript笔记(3)—— 使用WebPack工具
57 0
|
JavaScript 测试技术 Shell
[笔记]vue从入门到入坟《五》vue-cli构建vue webpack项目
[笔记]vue从入门到入坟《五》vue-cli构建vue webpack项目
|
前端开发
前端学习笔记202307学习笔记第五十七天-模拟面试笔记webpack-webpack能打包成es6语法吗
前端学习笔记202307学习笔记第五十七天-模拟面试笔记webpack-webpack能打包成es6语法吗
54 0
|
前端开发
前端学习笔记202303学习笔记第三天-Vue3.0-webpack插件作用
前端学习笔记202303学习笔记第三天-Vue3.0-webpack插件作用
58 0
|
前端开发 JavaScript 测试技术
Webpack | 青训营笔记
Webpack | 青训营笔记
50 0
|
前端开发
前端学习笔记202303学习笔记第三天-Vue3.0-webpack访问自动打包生成的文件1
前端学习笔记202303学习笔记第三天-Vue3.0-webpack访问自动打包生成的文件1
76 0
|
前端开发
前端学习笔记202303学习笔记第四天-Vue3.0-webpack自动清理webpack中dist目录
前端学习笔记202303学习笔记第四天-Vue3.0-webpack自动清理webpack中dist目录
51 0
|
前端开发
前端学习笔记202303学习笔记第四天-Vue3.0-webpack了解企业级项目打包发布
前端学习笔记202303学习笔记第四天-Vue3.0-webpack了解企业级项目打包发布
67 0
|
前端开发
前端学习笔记202303学习笔记第三天-Vue3.0-webpack插件作用
前端学习笔记202303学习笔记第三天-Vue3.0-webpack插件作用
59 0
|
前端开发
前端学习笔记202303学习笔记第四天-Vue3.0-webpack总结
前端学习笔记202303学习笔记第四天-Vue3.0-webpack总结
53 0