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папка.

Другие вопросы по тегам