首页 > 解决方案 > 如何在打字稿中构建具有双向对等依赖关系的库?

问题描述

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

请求库始终调用日志库,并将其列为对等依赖项。

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

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

我尝试使用 typescript's 在日志库中动态加载请求库await import(),但显然仍试图打开导致错误的请求库。

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

标签: javascriptnode.jstypescriptnpmpeer-dependencies

解决方案


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

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

使固定

在第三个库中隔离循环。

前:

A -> <- B 

后:

A -> Common
B -> Common 

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


推荐阅读