标签:流程 分享 使用 webpack 程序 系统 depend 入口 原理
本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。
打包过程可以拆分为四步:
以上是打包的基本机制,而webpack的打包过程,会基于这些基本步骤进行扩展,主要有以下步骤:
整个流程概括为3个阶段,初始化、编译、输出。而在每个阶段中又会发生很多事件,Webpack会将这些事件广播出来供Plugin使用。具体钩子,可以看官方文档:webpack.js.org/api/compile
更详细的分析:Webpack4打包机制原理简析
功能上来看,loader 只是为了解析某种 webpack 无法使用的模块,而 plugin 是扩展 webpack 功能的。
影响面来看,loader 只影响编译模块阶段。而 plugin 利用 webpack 打包流程中不断广播的事件,可直接操作变异对象,影响的范围大得多。
标签:流程 分享 使用 webpack 程序 系统 depend 入口 原理
原文地址:https://www.cnblogs.com/everlose/p/12505702.html