# 打包工具

# 出现的背景

  • ES Modules 模块系统本身存在一定兼容问题,虽然主流浏览器已经支持这一特性,但是无法保证用户的浏览器使用情况,还需解决兼容问题。
  • 模块化的方式会划分出很多模块文件,前端应用在浏览器端运行时有需要把这些文件的单独从服务器请求过来,过多的模块文件会导致浏览器频繁的发送请求,影响工作效率;
  • 随着前端发展,要模块化的代码不仅仅是 JavaScript 代码,HTML、css也要面临模块化的问题。

# 需要解决的问题

  • 代码编译能力

能够将一些新特性的代码编译成浏览器支持的代码,解决兼容问题。

  • 打包能力

能够将各个散落的模块打包到一起,解决频繁请求资源的问题;

另外还需要支持不同类型的资源文件,如图片,css。