如何在打字稿中构建具有双向对等依赖关系的库?



我有两个库,一个发出请求,另一个做日志记录。这两个库都需要客户端的配置,客户端将始终使用它们。

请求库在整个过程中调用日志记录库,并将其列为对等依赖项。

日志记录库有一个函数,该函数调用请求库中的方法以输出日志。该方法没有日志调用,以避免无限循环。日志记录库还将请求库列为对等依赖项。

当我尝试在请求库中运行tsc时,它抱怨无法导入自己。导入日志记录库时,日志记录库会尝试导入找不到的请求库。显然,我不想发布每个版本的请求库,其中嵌套了以前的版本,因此安装旧版本是行不通的。

我尝试使用打字稿的await import()在日志记录库中动态加载请求库,但这显然仍然尝试打开导致错误的请求库。

实现这种双向库关系的最佳方法是什么?

打字稿中的双向对等依赖关系?

你没有。不是在 JavaScript 中,也不是在 TypeScript 中。循环依赖关系并不好。

修复

在第三个库中隔离循环性。

以前:

A -> <- B 

后:

A -> Common
B -> Common 

如果你想不出Common,那么A & B真的应该是1(而不是2)

相关内容

  • 没有找到相关文章

最新更新