NRWL NX 导入 lib 错误 TS2307: 找不到模块 '@eduboard/interfaces'
NRWL NX importing lib error TS2307: Cannot find module '@eduboard/interfaces'
我刚刚为工作创建了一个新的 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;
}
我找到了解决问题的方法。
所以在 tsconfig.app.json
文件中,我将其添加到路径中。
"@eduboard/interfaces" : [
"../../../libs/interfaces/src/index"
]
我不得不回去几次,因为我把它的 baseURL
设置为 src/
nx 团队应该注意这个问题。我在 nx.dev 网站上试用教程时遇到了同样的问题。
我在其他线程上读到,如果删除 node_modules 文件夹和 re-run npm install,问题就会消失。我试过了,它奏效了。真让人失望。
如另一个答案中所述,我认为您不需要在使用该库的每个项目中指定路径。这打破了 nx.
提供的一些基本 architectures/benefits
对于那些从 nx 6/7 升级到 8 或 9 的用户,您可能需要验证您的 angular.json 库是否正在使用 "builder": "@nrwl/angular:package",
而不是 "builder": "@angular-devkit/build-ng-packagr:build",
。如果没有此更改,系统将尝试使用 angular-cli 构建器,它不知道工作空间的其余部分。
您需要为 TypeScript 指定库的位置。
将您的库添加到项目根目录下的 tsconfig.json
"paths"
:
{
"compilerOptions": {
...
"paths": {
"@package/my-lib": ["libs/my-lib/src/index.ts"]
}
}
}
您可能需要重新加载 VSCode 才能让 TypeScript 重新加载 tsconfig.json
。
我用 chabu 的想法修复了它,但我只做了 npm i
而没有删除 node_modules
文件夹。
我刚刚为工作创建了一个新的 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;
}
我找到了解决问题的方法。
所以在 tsconfig.app.json
文件中,我将其添加到路径中。
"@eduboard/interfaces" : [
"../../../libs/interfaces/src/index"
]
我不得不回去几次,因为我把它的 baseURL
设置为 src/
nx 团队应该注意这个问题。我在 nx.dev 网站上试用教程时遇到了同样的问题。 我在其他线程上读到,如果删除 node_modules 文件夹和 re-run npm install,问题就会消失。我试过了,它奏效了。真让人失望。
如另一个答案中所述,我认为您不需要在使用该库的每个项目中指定路径。这打破了 nx.
提供的一些基本 architectures/benefits对于那些从 nx 6/7 升级到 8 或 9 的用户,您可能需要验证您的 angular.json 库是否正在使用 "builder": "@nrwl/angular:package",
而不是 "builder": "@angular-devkit/build-ng-packagr:build",
。如果没有此更改,系统将尝试使用 angular-cli 构建器,它不知道工作空间的其余部分。
您需要为 TypeScript 指定库的位置。
将您的库添加到项目根目录下的 tsconfig.json
"paths"
:
{
"compilerOptions": {
...
"paths": {
"@package/my-lib": ["libs/my-lib/src/index.ts"]
}
}
}
您可能需要重新加载 VSCode 才能让 TypeScript 重新加载 tsconfig.json
。
我用 chabu 的想法修复了它,但我只做了 npm i
而没有删除 node_modules
文件夹。