以gulp为代表的传统打包思路是遍历源文件 => 匹配规则 => 打包/处理
,也就是说只要被规则命中了,即便是程序用不到的模块也会被无脑打包,这样做最大的问题是解决不了按需打包,就更别说按需加载了。
webpack的打包思路就是从程序逻辑入手:入口文件 => 分析代码 => 找出依赖 => 打包
,这样代码里不出现的模块就不可能被打进包里,甚至还可以实现按需加载。webpack可以实现按需打包,按需加载,分包(可以在业务代码中依托特定的语法标记出需要分包的模块,这就使分包的实现能在一定程度上自动化了)