# fed-e-task-02-02 **Repository Path**: frontend_site/fed-e-task-02-02 ## Basic Information - **Project Name**: fed-e-task-02-02 - **Description**: 模块化开发与规范化标准 - **Primary Language**: JavaScript - **License**: ISC - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-06-15 - **Last Updated**: 2021-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 1. Webpack 的构建流程主要有哪些环境?如果可以请尽可能详尽的描述 Webpack 打包的整个过程。 构建流程主要环境:开发环境;生产环境; webpack打包过程: 从配置文件定义的模块列表开始,处理应用文件,从入口文件开始递归构建一个依赖图,然后将加载所有模块,通过loader、plugin将所有模块打包为少量的bundle,通常只有一个,可由浏览器加载; ### 2. Loader 和 Plugin 有哪些不同?请描述一下开发 Loader 和 Plugin 的思路。 1. loader是文件加载器,能够加载资源文件,并对资源文件进行一些处理,诸如编译、压缩等,最终打包到指定文件中,专注于加载解析资源文件,处理非 JavaScript 文件; 2. plugin解决其他自动化的工作,扩展webpack的功能,基于事件机制工作,通过webpack-hooks可以覆盖webpack整个生命周期; webpack-loader开发: 1. JavaScript 函数; 2. 资源数据通过函数参数传递到函数内部; 3. 进行对资源数据的加工处理; 4. 处理完成后返回处理后的数据; webpack-plugin开发: 1. JavaScript 具名函数; 2. 在插件函数的 prototype 上定义一个 apply 方法; 3. 指定一个绑定到 webpack 自身的事件钩子; 4. 处理 webpack 内部实例的特定数据; 5. 功能完成后调用 webpack 提供的回调; 待继续完善:6/18