Преимущества Angular библиотек по сравнению с Angular модулями в монорепо? Архитектура NX - PullRequest
1 голос
/ 12 февраля 2020

Мне интересно, в чем преимущества работы с библиотеками по сравнению с модулями в Angular, поскольку nx.dev рекомендует для монорепо архитектуры.

Я понимаю преимущества для npm публикуемой функции например, интерфейсы, которые будет использовать другое хранилище, но зачем мне делать библиотеку из функций, связанных с бизнесом, таких как домашняя страница, например:

myorg/
├── apps/
│   ├── todos/
│   └── todos-e2e/
├── libs/
      ├── todos/
        ├── home/   <-- why nx recommands making a library here?
          ├── src/
            ├── lib/
              ├── home.component.html/ts/scss
              ├── home.module.ts
├── tools/
├── README.md
├── workspace.json
├── nx.json
├── package.json

вместо

myorg/
├── apps/
│   ├── todos/
         [...]
         ├── home/   <-- just a simple lazy loaded module here
           ├── home.component.html/ts/scss
           ├── home.module.ts
│   └── todos-e2e/
├── libs/
├── tools/
├── README.md
├── workspace.json
├── nx.json
├── package.json
└── tsconfig.json

1 Ответ

4 голосов
/ 12 февраля 2020

NX рекомендует, чтобы вы поместили больше , чем 90% вашего кода в библиотеки, а целью этих библиотек является не только совместное использование кода между различными приложениями мы можем создать библиотеку даже если код не является общим и использует папки приложений только для таких конфигураций, как маршрутизация и среды.

, мы должны упомянуть о преимуществах разделения вашего кода на небольшие блоки (libs), которые вы можете тестируйте и создавайте их по отдельности .

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

  • Библиотеки компонентов. Разработчики должны рассматривать библиотеки компонентов как библиотеки, которые реализуют интеллектуальный интерфейс пользователя (с внедренными службами) для конкретных c вариантов использования бизнеса или страниц в приложении.

  • Библиотеки пользовательского интерфейса: библиотека пользовательского интерфейса содержит только компоненты представления.

  • Библиотеки доступа к данным: A d Библиотека ata-access содержит сервисы и утилиты для взаимодействия с серверной системой. Он также включает в себя весь код, связанный с управлением состоянием.

  • Библиотеки утилит. Библиотека утилит содержит общие утилиты и службы, используемые многими библиотеками и приложениями.

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

я приглашаю вас проверить это, когда Виктор Савкин говорили о библиотеках

https://youtu.be/qYNiOKDno_I?t=6m35s

...