声明合并和嵌套node_modules问题



我有下一个结构:

  • @my/app
    • 节点模块
      • @类型/角度
      • @类型/角度平移
      • @我的/图书馆
        • 节点模块
          • @类型/角度

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

另一方面,@my/app@my/library似乎在某种程度上使用了不同版本的@types/angular,即使我在比较两个package.json时找不到区别。这就是为什么@my/library有自己的node_module和@types/angular。但是,由于它没有自己的@types/angular-translate,没有人将角度转换类型添加到角度名称空间,我得到了下一个错误:

import {
animate
} from "angular";

TS2305:模块'@my/app/nod_modules/@my/library/nod_modules/@types/angular"'没有导出的成员"翻译">

正如我所说,我发现@my/app@my/library的版本之间没有差异。可能出了什么问题?我有更多级别的嵌套库,这些库使用@types/angular的另一个版本。

我仍然不能100%理解它,但似乎是嵌套的@types/angular依赖关系的不同版本导致了@types/angular@my/library/node_modules中的安装。

我已经在我的库之间同步了@types/angular的所有版本,但它不起作用。

在media上阅读了这篇文章后,我想必须按照npm保持的安装顺序来解析依赖关系树。

最新更新