声明合并和嵌套 node_modules 问题

Declaration merging and nested node_modules problem

我有下一个结构:

问题是 @types/angular-translate 通过声明合并扩展了 @types/angular 的定义。

另一方面,@my/app@my/library 似乎使用了不同版本的 @types/angular,即使我比较两者 package.jsons 也找不到区别。这就是为什么 @my/library 有自己的 node_modules 和自己的 @types/angular。 但是,由于它没有自己的 @types/angular-translate,因此没有人将 angular-translate 类型添加到 angular 命名空间,我收到下一个错误:

import {
    animate
} from "angular";

TS2305: Module '@my/app/node_modules/@my/library/node_modules/@types/angular"' has no exported member 'translate'

正如我所说,我发现 @my/app@my/library 的版本之间没有区别。有什么问题?我与使用另一个版本 @types/angular.

的库有更多层次的嵌套

我仍然不能 100% 理解它,但似乎不同版本的嵌套 @types/angular 依赖项导致在 @my/library/node_modules.[=15= 中安装了 @types/angular ]

我已经在我的库之间同步了 @types/angular 的所有版本,但它无法正常工作。

阅读后this article at medium我猜它必须与 npm 保存的安装顺序一起解析依赖关系树。