我在一个项目中使用Webpack 5,并试图将一些逻辑移到WebWorker中。
persistenceWorker = new Worker(
new URL('app/engine/persistence/worker', import.meta.url),
);
然而,我现在从webpack中得到了这样的警告:
Circular dependency between chunks with runtime (main, src_app_engine_index_ts)
This prevents using hashes of each other and should be avoided.
看起来这是因为我的worker文件导入的代码传递性地导入了创建worker的文件。我不认为这在我的程序架构中是可以避免的。虽然我不认为这是一个问题--没有任何东西导入worker模块,所以引用应该都是一个方向的。看起来像是将创建worker作为依赖项计算在内。即使创建worker的文件实际上并没有导入worker文件中的代码。
有没有办法解决这个问题?重构我的项目以删除"循环依赖项"可能是不可行的。
如果我关闭这个警告,一切都正常,我不清楚"这阻止使用彼此的哈希"在实际中是什么意思。
1条答案
按热度按时间u1ehiz5o1#
我认为是某个webpack插件导致了此问题。要检测此问题,您可以使用circular-dependency-plugin
在复杂的软件中,循环依赖通常是必要的,循环依赖的存在并不总是意味着bug,但是在你认为bug存在的情况下,这个模块可以帮助你找到它。