webpack学习 - 是什么,有什么作用

94 阅读2分钟

背景

从jsp、原生Js,Jquery,再到现在的三大框架Vue、React、Angular。 开发方式,也从JavaScript到后面的es5、es6、7、8等, 再到TypeScript,包括编写css的预处理器less、scss 随着业务增多,现代前端开发已经变得十分复杂,开发过程中会遇到一些问题,例如:

  1. 需要通过模块化的方式来开发 (提高代码复用性、可维护性、实现按需加载。需要对模块进行管理)
  2. 使用一些高级特性来加速我们的开发效率,比如通过es6+、TypeScript开发,通过less、sass等方式编写css样式代码
  3. 监听文件的变化并且反映到浏览器上,提高开发效率(热更新)
  4. JavaScript需要模块化,HTML和CSS这些资源有模块化的需求
  5. 开发完成需要对代码进行压缩、合并等优化

上述问题webpack可以解决

是什么

webpack是一个现代JavaScript应用的静态模块打包工具。

静态模块

指开发阶段可以被webpack直接引用的资源(可以直接被获取打包进bundle.js的资源)

webpack处理应用程序时,它会在内部构建一个依赖图,此依赖图对应映射到项目所需的每个模块(前端工程src目录下文件都是模块),并生成一个或者多个bundle

a35bed45670820caaa22c0f451d7e5e.png

webpack的能力:

编译代码能力,提高效率,解决浏览器兼容问题

image.png

模块整合能力,提高性能,可维护性,解决浏览器频繁请求文件的问题

image.png

万物皆可模块能力(前端工程src目录下文件),项目维护性增强,支持不同种类的前端模块类型,统一的模块化方案,所有资源文件的加载都可以通过代码控制

参考文献

面试官:说说你对webpack的理解?解决了什么问题? | web前端面试 - 面试官系列