webpack理解

151 阅读2分钟

1.Webpack是什么

静态模块化打包工具

2.为什么需要webpack

前端开发的复杂化

  1. 随着前后端的分离,开发过程中我们需要通过模块化的方式进行开发。

  2. 使用一些高级的特性来加快开发效率或安全性,比如ES6+TypeScript开发脚本逻辑,通过sassless等方式来编写css样式代码。

  3. 需要监听文件的变化来实时反映到浏览器上提高开发的效率。

  4. 开发完成后需要将代码进行压缩、合并以及其他项目的优化

前端三个框架的脚手架

目前前端流行的三大框架:Vue、React、Angular,创建它们的项目使用的脚手架都是基于webpack的。

3.为什么学习webpack

  1. 项目开发过程中需要一些特殊的配置:比如给某些目录结构起别名,让我们的项目支持sass、less等预处理器,希望在项目中手动的添加TypeScript的支持,都需要对webpack进行一些特殊的配置工作。

  2. 在脚手架上定制一些自己的特殊配置提供性能:比如安装性能分析工具使用gzip压缩代码引用cdn的资源公共代码抽取等等,甚至包括需要编写属于自己的loader和plugin

4.webpack打包原理

webpack打包之后的文件

1. 自执行参数

2. 参数通过对象的形式传递

  • key:文件的路径 value:是一个函数(执行当前文件的代码)
  • eval:执行字符串代码
  • 如果有多个相互依赖的文件,最终打包成一个文件

3. 通过__webpack_require__把所有的文件打包后形成一个文件

4. 原理:通过递归的方式,不断地调用自己