NRWL NX импортирует ошибку lib TS2307: не удается найти модуль '@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;
}
6 ответов
Я узнал, как исправить мою проблему.
Так что внутри tsconfig.app.json
файл, я добавил это к путям.
"@eduboard/interfaces" : [
"../../../libs/interfaces/src/index"
]
Я должен был вернуться довольно немногие, потому что у меня было это baseURL
установлен в src/
Вам необходимо указать расположение вашей библиотеки, чтобы TypeScript мог ее найти.
Добавьте свою библиотеку в tsconfig.json
в корне вашего проекта под "paths"
:
{
"compilerOptions": {
...
"paths": {
"@package/my-lib": ["libs/my-lib/src/index.ts"]
}
}
}
Вам может потребоваться перезагрузить VSCode, чтобы TypeScript перезагрузил tsconfig.json
.
Команда nx должна обратить на это внимание. У меня была та же проблема, когда я пробовал учебник на сайте nx.dev. Я читал в другой ветке, что если вы удалите папку node_modules и перезапустите npm install, проблема исчезнет. Я попробовал это, и это сработало. Действительно разочаровывает.
Как упоминалось в другом ответе, я не думаю, что вам нужно указывать пути в каждом проекте, где вы используете библиотеку. Это нарушает некоторые основные архитектуры / преимущества, предоставляемые NX.
НЕ играйте с конфигурацией NX. Просто удалитьdist
иnode_modules
и установить снова. Я думаю, что это ошибка, которую они должны исправить
Для тех, кто обновился с nx 6/7 до 8 или 9, вам может потребоваться проверить, что ваш angular.json для библиотек использует "builder": "@nrwl/angular:package",
вместо того "builder": "@angular-devkit/build-ng-packagr:build",
. Без этого изменения система попытается использовать построитель angular-cli, который ничего не знает об остальной рабочей области.
Я исправил это с идеей чабу, но я делаю только
npm i
без удаления
node_modules
папка.