Класс не является модулем Angular - только в IntelliJ / Webstorm при импорте локальной сборки библиотеки Angular - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь использовать модуль Angular, реализованный в библиотеке (проекте), которая существует в отдельном приложении Angular. В IntelliJ я получаю сообщение об ошибке Class MyModule is not an Angular module, и вся библиотека, кажется, не распознается в IntelliJ, хотя я могу успешно запустить ng build для этого проекта. Что еще более странно, так это то, что у меня фактически есть две библиотеки Angular, существующие в другом приложении Angular, и я могу без проблем использовать модули из другой библиотеки.

Я уже встречал другие похожие проблемы, связанные с class is not an Angular moduleпохоже, они не связаны между собой.

1 Ответ

0 голосов
/ 17 октября 2019

Вот ответ, который я нашел после нескольких часов, оборачиваясь. Как я использую проблемную библиотеку в основном проекте:

  • npm link в папке build библиотеки lib
  • npm link @my-org/my-new-lib в приложении я вижу проблемы.

вместе с ng build @my-org/my-new-lib --watch для lib, что позволяет мне одновременно работать над обоими проектами, сразу видя результаты в целевом приложении.

Проблема, по-видимому, связана с ошибкойв IntelliJ - https://youtrack.jetbrains.com/issue/WEB-38354?_ga=2.263408847.258701770.1571260138-1443411092.1565629801 - это вызывает автоматическое исключение зависимостей с dist в пути, даже если библиотека правильно связана с целевым приложением. node_modules IntelliJ исключает ее, таким образом, библиотека фактическине используется в IDE.

Обходной путь (похожий на предложенный в билете jetbrains) - перейти в IDE в целевом приложении к символической ссылке node_modules/@my-org/my-new-lib - щелкните правой кнопкой мыши и выберите Пометить каталог как -> Не исключено

Надеюсь, что это может сэкономить некоторое время кому-то, поскольку это действительно сбивает с толку и неочевидно преодолеть.

...