通过依赖图排错

在业务代码中,我们可能会碰到依赖注入不生效或者作用域配置错误的问题,这个时候由于容器管理的问题显得不透明,用户也不太清楚容器里有哪些东西,分别依赖了什么。

我们提供了一个依赖树生成的方法,目前可以通过它生成文本形式的图形。

  1. const container = new Container();
  2. container.bind(UserService);
  3. container.bind(UserController);
  4. container.bind(DbAPI);
  5. const newTree = await container.dumpDependency();
  6. console.log(newTree);

通过 dumpDependency 方法生成的文本,可以直接在 viz-js通过依赖图排错 - 图1 渲染为图案,方便排查问题。

也可以通过安装 graphviz 等工具将文本树转化为图片形式。

TIP

midway 在启动时会将依赖树生成到 /run 目录下,方便排错。