背景
从jsp、原生Js,Jquery,再到现在的三大框架Vue、React、Angular。 开发方式,也从JavaScript到后面的es5、es6、7、8等, 再到TypeScript,包括编写css的预处理器less、scss 随着业务增多,现代前端开发已经变得十分复杂,开发过程中会遇到一些问题,例如:
- 需要通过模块化的方式来开发 (提高代码复用性、可维护性、实现按需加载。需要对模块进行管理)
- 使用一些高级特性来加速我们的开发效率,比如通过es6+、TypeScript开发,通过less、sass等方式编写css样式代码
- 监听文件的变化并且反映到浏览器上,提高开发效率(热更新)
- JavaScript需要模块化,HTML和CSS这些资源有模块化的需求
- 开发完成需要对代码进行压缩、合并等优化
上述问题webpack可以解决
是什么
webpack是一个现代JavaScript应用的静态模块打包工具。
静态模块
指开发阶段可以被webpack直接引用的资源(可以直接被获取打包进bundle.js的资源)
当webpack处理应用程序时,它会在内部构建一个依赖图,此依赖图对应映射到项目所需的每个模块(前端工程src目录下文件都是模块),并生成一个或者多个bundle
webpack的能力:
编译代码能力,提高效率,解决浏览器兼容问题
模块整合能力,提高性能,可维护性,解决浏览器频繁请求文件的问题
万物皆可模块能力(前端工程src目录下文件),项目维护性增强,支持不同种类的前端模块类型,统一的模块化方案,所有资源文件的加载都可以通过代码控制