什么是Webpack
WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。
WebPack和Grunt以及Gulp相比有什么特性
其实Webpack和另外两个并没有太多的可比性,Gulp/Grunt是一种能够优化前端的开发流程的工具,而WebPack是一种模块化的解决方案,不过Webpack的优点使得Webpack在很多场景下可以替代Gulp/Grunt类的工具。
Grunt和Gulp的工作方式是:在一个配置文件中,指明对某些文件进行类似编译,组合,压缩等任务的具体步骤,工具之后可以自动替你完成这些任务。
为什么另一个模块捆绑?
现有的模块绑定器并不适合大型项目(大单页应用)。开发另一个模块捆绑器的最紧迫的原因是代码分割,静态资产应通过模块化无缝地融合在一起。
目标
- 将依赖关系树分解为按需加载的大块
- 保持初始加载时间低
- 每个静态资产都应该是一个模块
- 将第三方库集成为模块的能力
- 能够定制模块捆绑器的几乎每个部分
- 适合大项目
Webpack的工作方式
把你的项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个(或多个)浏览器可识别的JavaScript文件。