【问题标题】:Declaration merging and nested node_modules problem声明合并和嵌套node_modules问题
【发布时间】:2020-07-29 10:12:04
【问题描述】:

我有下一个结构:

  • @我的/应用
    • node_modules
      • @types/角度
      • @types/angular-translate
      • @我的/图书馆
        • node_modules
          • @types/角度

问题是@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:模块 '@my/app/node_modules/@my/library/node_modules/@types/angular"' 没有 导出成员“翻译”

正如我所说,我发现@my/app@my/library 的版本之间没有区别。有什么问题?我对使用另一个版本的 @types/angular 的库进行了更多级别的嵌套。

【问题讨论】:

    标签: angular typescript npm node-modules angular-translate


    【解决方案1】:

    我仍然没有 100% 理解它,但似乎不同版本的嵌套 @types/angular 依赖项导致在 @my/library/node_modules 内安装 @types/angular

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

    看了this article at medium之后,我猜它必须是npm保存的安装顺序来解析依赖树。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-07
      • 2016-11-20
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-11
      • 2016-12-25
      相关资源
      最近更新 更多