10

我刚刚为工作创建了一个新的 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';

这是全局管理员仪表板

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

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

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

4

4 回答 4

8

我发现了如何解决我的问题。

所以在tsconfig.app.json文件中,我将它添加到路径中。

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

我不得不回去很多,因为我baseURL有一套src/

于 2019-06-17T13:09:34.780 回答
2

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

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

于 2019-06-20T03:47:55.910 回答
0

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

于 2020-05-03T20:28:20.457 回答
0

您需要指定库的位置以便 TypeScript 定位。

将您的库添加到tsconfig.json项目的根目录下"paths"

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

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

于 2020-06-02T09:07:39.033 回答