webpack配置:runtime和dependOn为什么不能一起用?

66 阅读1分钟

最近在重温webpack配置,看到官方文档在讲Entry points的时候,提到了runtime和dependOn不能一起用。如下图所示:

image.png

  • dependOn 用来设置依赖的entry point,也就是说如果你设置的这个entry依赖其他entry,那么你可以设置这个属性声明依赖关系。
  • runtime 用来设置是否单独生成一个runtime chunk(webapck运行时代码)

image.png

所以这两个风马牛不相及的属性为什么不能一起用?一个在设置entry的依赖,一个在控制是否单独生成runtime chunk。

要想知道这个问题需要先了解runtime chunk是什么?

runtime chunk 是webpack的运行时代码,负责模块的加载和解析。包含了

  1. 模块缓存(__webpack_modules__):存储了所有模块的导出。
  2. 模块加载逻辑:包括异步加载模块的逻辑,如 import() 语法。
  3. 模块映射关系:用于确定模块的加载顺序和依赖关系。

因为runtime chunk保存着所有模块的导出和映射关系,所以处于同一个runtime下的两个entry才可以相互依赖,而如果想要为一个entry生成独立的runtime,这个entry就不能依赖其他entry。