# fed-e-task-02-02 **Repository Path**: D-Rose/fed-e-task-02-02 ## Basic Information - **Project Name**: fed-e-task-02-02 - **Description**: 模块化开发与规范化标准 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-06-19 - **Last Updated**: 2020-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 高士迪 | Part 2 | 模块二 ## 简答题 ### 第一题 Webpack 的构建流程主要有哪些环节?如果可以请尽可能详尽的描述 Webpack 打包的整个过程 Webpack在启动后,会从Entry开始,递归解析Entry依赖的所有Module,每找到一个Module,就会根据Module.rules里配置的Loader规则进行相应的转换处理,对Module进行转换后,再解析出当前Module依赖的Module,这些Module会以Entry为单位进行分组,即为一个Chunk。因此一个Chunk,就是一个Entry及其所有依赖的Module合并的结果。最后Webpack会将所有的Chunk转换成文件输出Output。在整个构建流程中,Webpack会在对应的钩子中执行相对应Plugin里定义的逻辑,从而完成Plugin插件的优化任务。 ### 第二题 Loader 和 Plugin 有哪些不同?请描述一下开发 Loader 和 Plugin 的思路。 Loader的主要作用负责资源文件从输入到输出的转换,Plugin扩展插件的作用主要是在相应的钩子中注入扩展逻辑,用来改变或优化构建结果。Loader的开发导出一个函数传入一个源模块的参数,把源模块转换成需要改成的模块,而Plugin 开发主要是通过在webpack生命周期的钩子中挂载函数实现扩展