我刚刚创建了一个新的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;
}
答案 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
。