声明合并和嵌套 node_modules 问题
Declaration merging and nested node_modules problem
我有下一个结构:
- @my/app
- node_modules
- @types/angular
- @types/angular-翻译
- @my/library
- node_modules
- @types/angular
问题是 @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 保存的安装顺序一起解析依赖关系树。
我有下一个结构:
- @my/app
- node_modules
- @types/angular
- @types/angular-翻译
- @my/library
- node_modules
- @types/angular
- node_modules
- node_modules
问题是 @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 保存的安装顺序一起解析依赖关系树。