我有两个库,一个发出请求,另一个做日志记录。这两个库都需要客户端的配置,客户端将始终使用它们。
请求库在整个过程中调用日志记录库,并将其列为对等依赖项。
日志记录库有一个函数,该函数调用请求库中的方法以输出日志。该方法没有日志调用,以避免无限循环。日志记录库还将请求库列为对等依赖项。
当我尝试在请求库中运行tsc
时,它抱怨无法导入自己。导入日志记录库时,日志记录库会尝试导入找不到的请求库。显然,我不想发布每个版本的请求库,其中嵌套了以前的版本,因此安装旧版本是行不通的。
我尝试使用打字稿的await import()
在日志记录库中动态加载请求库,但这显然仍然尝试打开导致错误的请求库。
实现这种双向库关系的最佳方法是什么?
打字稿中的双向对等依赖关系?
你没有。不是在 JavaScript 中,也不是在 TypeScript 中。循环依赖关系并不好。
修复
在第三个库中隔离循环性。
以前:
A -> <- B
后:
A -> Common
B -> Common
如果你想不出Common
,那么A & B
真的应该是1(而不是2)