【问题标题】:How to import a library from another library in nx project如何从nx项目中的另一个库导入一个库
【发布时间】:2023-01-05 21:59:05
【问题描述】:

我已经使用 nx 创建了一个 nextjs 应用程序。

在同一个项目中,我创建了 2 个库:

实用程序记录器 实用程序记录器传输 当我尝试在 utils-logger 中包含 utils-logger-transports 时,我找不到“@nx-app/utils-logger-transports”模块

导入路径在 tsconfig.base.json 中正确设置

基本问题是如何创建多个库并在其他库中导入一个库。

非常感谢你的帮助!

【问题讨论】:

    标签: typescript nx.dev nextjs13


    【解决方案1】:

    我在后端有一个进程,可以自动生成调用后端所需的接口、枚举和服务。 所有这些都生成到三个目录中:接口、枚举和服务。 我已将这些目录放入结构如下的可构建库中: /libs/api/src/{接口、枚举、服务} 每个目录中都有相应的 TS 文件。

    在我的 tsconfig.base.json 文件中,我添加了以下路径条目:

      "@skycourt/api/enums/*": ["libs/api/src/enums/*"],
      "@skycourt/api/interfaces/*": ["libs/api/src/interfaces/*"],
      "@skycourt/api/services/*": ["libs/api/src/services/*"],
    

    在第二个称为 helpers 的库中,我导入了几个枚举和接口,如下所示: 从'@skycourt/api/enums/ActivityType'导入{ActivityType};

    VSCode 很乐意识别这些路径。 Lint 很高兴地识别了这些路径,并且我能够在使用这些路径的第二个库中运行 jest 测试。

    但是,当我尝试构建助手库时,出现以下错误:

    为项目“common-helpers”编译 TypeScript 文件... libs/common/helpers/src/lib/ActivityIcon.ts:1:30 - 错误 TS2307:找不到模块“@skycourt/api/enums/ActivityType”或其相应的类型声明。

    1 从“@skycourt/api/enums/ActivityType”导入 {ActivityType}; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    我知道 Nx 理解 helpers 和 api 之间的依赖关系,因为当我显示图形时,有一个从 helpers 到 api.strong text 的箭头

    【讨论】:

      猜你喜欢
      • 2019-11-24
      • 2013-09-24
      • 1970-01-01
      • 2018-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多