webpack工作原理

其实,webpack官网首屏的那张图片就已经阐释了它的工作原理。我们以一个普通的前端项目为例:

项目中一般都会有各种各样的代码集和资源文件,js、css、html、json、图片资源等。这些代码及资源文件都可以看作我们项目中的模块。

webpack会根据我们的配置找到其中的一个文件作为入口文件,一般这个文件都会是一个js文件。然后顺着入口文件中的代码,根据代码中出现的 import 或者是 require 之类的语句,解析推断出来这个文件所依赖的资源模块。

然后分别解析每个模块的资源模块的依赖,形成项目中所有用到的文件中的依赖关系树。

有了这个依赖关系树之后,webpack会遍历,或者更准确的说叫作递归这个依赖关系树,找到每个节点对应的资源文件。

然后根据配置文件中的loader规则配置,交给对应的loader去加载。最后将加载的结果放在bundle.js也就是打包结果中,也就完成了整个项目的打包。