1.webpack和gulp的优缺点
两者皆属于构建工具,但是其侧重点不同。
1.gulp侧重于对开发流程的控制管理。
优点:
1.轻量,配置文件比较简单。
2.基于Nodejs强大的stream能力,构架速度快。
3.适合多页web应用以及node服务端应用。
缺点:
1.不太适合单页或自定义模块的开发。
2.webpack侧重于模块的打包
优点:
1.任何资源都可以作为模块处理。
2.社区资源丰富,有很多插件和loader。
缺点:
1.配置复杂。
2.不适合node服务端应用。
3.构建速度较慢,需要做很多性能优化。
2.webpack中的Runtime和Manifest代码的作用?
1.两个模块的共同点:
主要都是管理所有模块的交互。
2.Runtime
主要是在浏览器运行时,webpack用来连接模块化的应用程序的所有代码。runtime包含:在模块交互时,连接
模块所需的加载和解析逻辑。包括浏览器中的已加载的连接,以及懒加载模块的执行逻辑。
3.Manifest
在代码经过编译打包后,形成如index.html文件,一些bundle和各种资源加载到浏览器中,是不是src目录下的
文件结构现在已经不存在了,那webpack如何管理所有模块之间的交互呢?这就是manifest数据的由来。
当编译器开始执行,解析和映射应用程序时,它会保留所有模块的详细要点。这个数据集合成为manifest,当完
成打包并发送到浏览器时,会在运行时通过manifest来解析加载模块。无论选择哪种模块语法,那些import或
require语句都已经转化为__webpack_require__方法,此方法指向模块标识符。通过manifest中的数据,
runtime将能够查询模块标识符,检索背后对应的模块。
4.总结:
runtime: 根据manifest数据管理模块代码。主要时指模块交互时,连接模块所需的加载和解析逻辑。包括:已
经加载到浏览器中的连接模块逻辑,以及尚未加载模块的延迟加载逻辑。
manifest:记录在打包过程中,各个模块之间的信息以及关联关系。