webpack相关总结
1. 什么是webpack?它和grunt和gulp有什么不同?
Webpack是一个模块打包器,它可以递归的打包项目中的所有模块,最终生成几个打包后的文件。它和其它的工具最大的不同在于他支持code-splitting、模块化(AMD,ESM,CommonJS)、全局分析。
2. 什么是bundle?什么是chunk?什么是module?
bundle是由webpack打包出来的文件。chunk是指webpack在进行模块的依赖分析的时候,分割出来的代码块。module是开发中的单个模块。
3. 什么是Loader?什么是Plugin?
- loader是使webpack拥有加载和解析非js文件的能力。
- plugin 可以扩展webpack的功能,使得webpack更加灵活。可以在构建的过程中通过webpack的api改变输出的结果。
4. webpack的构建流程?
- 初始化参数: 从配置文件和shell语句中将读到的参数合并,得到最后的参数。
- 开始编译:用合并得到的参数初始化complier对象,加载所有配置的插件,执行run方法开始编译。
- 确定入口:通过entry找到入口文件。
- 编译模块:从入口文件出发,调用所有配置的loader对模块进行解析翻译,再找到该模块依赖的模块进行处理。
- 完成模块编译:得到每个模块被翻译之后的最终内容和依赖关系。