-
依赖管理:方便引用第三方模块、让模块更容易复用、避免全局注入导致的冲突、避免重复加载或加载不需要的模块。
-
合并代码:把各个分散的模块集中打包成大文件,减少HTTP的请求链接数,配合UglifyJS可以减少、优化代码的体积。
-
各路插件:babel把ES6+转译成ES5-,eslint可以检查编译期的错误……
原理:最简单地说,就是分析代码,找到require、exports、define等“关键词”,并替换成对应模块的“引用”……
webpack的理念就是一切皆模块,把一大堆的css,js在一个总入口文件require引入,
剩下的事情,webpack会自动处理,包括所有模块的前后端依赖关系打包压缩合并成一个js,公共代码抽离另外生成位js,某些制定的js单独打包...
这些模块可以是css/js/image/fonts。