# fed-e-task-02-02 **Repository Path**: sfl001/fed-e-task-02-02 ## Basic Information - **Project Name**: fed-e-task-02-02 - **Description**: No description available - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-12-06 - **Last Updated**: 2021-03-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简答题 ## 一、Webpack 的构建流程主要有哪些环节?如果可以请尽可能详尽的描述 Webpack 打包的整个过程 答: 1. 初始化项目 2. 配置文件 webpack.config.js 3. 配置项目入口、输出路径、开发模式等 4. 配置不同资源处理的 loader 5. 配置 plugin 6. 执行打包命令 ## 二、Loader 和 Plugin 有哪些不同?请描述一下开发 Loader 和 Plugin 的思路。 答: loader 主要是对不同资源做处理,将一些浏览器不支持或者有兼容问题的代码处理为浏览器可以支持的资源,如将 ES6+转为 ES5、Sass 转为 css 等 开发思路: - 通过 module.exports 导出一个函数 - 该函数默认参数一个参数 source(即要处理的资源文件) - 在函数体中处理资源(loader 里配置响应的 loader 后) - 在函数体中处理资源(loader 里配置响应的 loader 后) plugin 主要是在 webpack 构建的不同阶段执行一些额外的工作,比如拷贝静态资源、清空打包后的文件夹等 开发思路: - 通过钩子机制实现 - 插件必须是一个函数或包含 apply 方法的对象 - 插件必须是一个函数或包含 apply 方法的对象 - 将处理完的资源通过 webpack 提供的方法返回该资源