Библиотека Angular 9: зависимость от основной точки входа к вторичной

У нас есть корпоративная библиотека, которая обновляется с angular 8.2.x до 9.0.6. Я уже отключил ivy для сборок prd, так что это нормально.

Структура проекта следующая:

  • projects
    • my-ui-lib
      • src
        • public_api.ts
        • папка с некоторыми компонентами, которые используют методы утилиты
      • common
        • src
          • public_api.ts
          • методы папки с утилитой

Сборка my-ui-lib не вызывает никаких проблем. Использование my-ui-lib в проекте дает следующую ошибку:

ОШИБКА в целевой точке входа «@ my / ui» отсутствуют зависимости: - @ my / ui / common

Этого не произошло на angular 8.2.x. Что я делаю / мигрировал неправильно?


person dendimiiii    schedule 16.03.2020    source источник
comment
У меня точно такая же проблема, и я не мог найти другого решения, кроме включения ivy в моем файле tsconfig.lib.prod.json проекта my-ui-lib. Это противоречит тому, что предлагает документация Angular, и, согласно документации, ivy должен быть отключен в разделяемых библиотеках на данный момент. Я ищу решение, в котором ivy может оставаться отключенным в проекте библиотеки из-за этого.   -  person Sami Viitala    schedule 17.03.2020
comment
но из-за этого моя библиотека не может быть помещена в наш корпоративный реестр npm :).   -  person dendimiiii    schedule 17.03.2020
comment
Я столкнулся с той же проблемой сейчас, когда пытался опубликовать в нашей ленте npm, так что это, в конце концов, не является жизнеспособным решением.   -  person Sami Viitala    schedule 18.03.2020


Ответы (1)


У меня был аналогичный случай обновления проекта с несколькими зависимыми библиотеками от Angular @ 8 latest до Angular @ 9 latest.

Моя проблема заключалась в том, что сборка @my/ui/common сама по себе (с использованием ng build @my/ui/common) приводила к ошибкам (в частности, к использованию атрибута [overlapTrigger]="false" для компонента mat-menu. После исправления ошибки отсутствующие зависимости исчезли.

Я знаю, что это может быть другой случай, чем ваш, но, возможно, это будет полезно для других.

person Ernstjan Freriks    schedule 20.07.2020