webpack其实就是一个JavaScript静态资源模块化打包工具、可以实现模块按需加载,预处理,打包等功能。
前端模块化:
目前的前端模块化方案有CMD,AMD,commonJS,ES6等等,但是在ES6之前,必须借助第三方工具来进行模块化开发,开发完成之后还需要处理各个模块之间的依赖关系,并且还需要把他们整合打包。webpack提供的就是可以让我们进行模块化开发,并且会帮我们处理各个模块之间的依赖关系,而且不仅仅是JavaScript。css、图片、Json都可以进行模块化来使用。
打包:
打包其实就是把模块化开发的文件合并在一个或者多个包(bundle)中,并且还可以对图片进行压缩,把scss转换为css,把ES6转换成ES5,把TypeScript转换成JavaScript等等。