NRWL NX导入库错误TS2307:找不到模块'@ eduboard / interfaces'

时间:2019-06-14 18:08:01

标签: angular angular7 nrwl nrwl-nx

我刚刚创建了一个新的NX项目用于工作,并且创建了一个用于输出接口的库,以便将它们放在后端和前端。

编译时出现此错误

apps/askeddi/src/app/pages/global-admin/global-admin.component.ts(5,38): error TS2307: Cannot find module '@eduboard/interfaces'.

从我读到的所有内容来看,我没有做错任何事情,只是请求一个模块,而只是一个index.ts文件。

export * from './lib/user';
export * from './lib/global-admin-dashboard';

这是global-admin-dashboard

interface Schools {
  total: number;
  active: number;
  usingAssessor: number;
}

interface TotalNActive {
  total: number;
  active: number;
}

export interface GlobalAdminDashboard {
  schools: Schools;
  schoolGroups: TotalNActive;
  users: TotalNActive;
}

4 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。

因此,在tsconfig.app.json文件中,我将其添加到了路径中。

"@eduboard/interfaces" : [
  "../../../libs/interfaces/src/index"
  ]

我不得不退后几步,因为我将baseURL设置为src/

答案 1 :(得分:0)

nx团队应注意此问题。我在nx.dev网站上尝试教程时遇到了同样的问题。 我在其他一些线程上读到,如果删除node_modules文件夹并重新运行npm install,问题将消失。我尝试了,它奏效了。真令人失望。

如另一个答案中所述,我认为您不需要在使用该库的每个项目中都指定路径。这破坏了nx提供的一些基本架构/优点。

答案 2 :(得分:0)

对于那些从nx 6/7升级到8或9的用户,您可能需要验证库的angular.json是否使用"builder": "@nrwl/angular:package",而不是"builder": "@angular-devkit/build-ng-packagr:build",。如果不进行此更改,系统将尝试使用不了解工作空间其余部分的angular-cli生成器。

答案 3 :(得分:0)

您需要为TypeScript指定库的位置。

将您的库添加到位于项目tsconfig.json下的项目的"paths"中:

{
  "compilerOptions": {
    ...
    "paths": {
      "@package/my-lib": ["libs/my-lib/src/index.ts"]
    }
  }
}

您可能需要重新加载VSCode才能让TypeScript重新加载tsconfig.json