Угловой процесс сборки с несколькими проектами и библиотеками - PullRequest
0 голосов
/ 04 июля 2019

На днях я развернул первую версию нашего интерфейса, и, пока все настраивал, я сильно запутался в процессе сборки.Большинство приложений Angular на самом деле не беспокоятся об использовании функции рабочего пространства, поскольку единственная причина для этого заключается в том, что вы создаете несколько отдельных приложений, которые совместно используют код через библиотеку, по таким причинам, как желание физически разделить пользовательский интерфейс клиента и заднюю часть.-office UI.

До сих пор я следил за очень хорошо написанной статьей о проектах библиотек Angular: https://blog.angularindepth.com/creating-a-library-in-angular-6-87799552e7e5

К сожалению, как и в большинстве статей, процесс сборки отличается от того, что касаетсясам проект библиотеки довольно расплывчатый.Мне удалось все запустить и запустить с помощью следующих команд (я сделал скрипт в разделе сценариев package.json):

ng build my-lib-project-name && ng build && ng build my-ui-project-name --output-hashing=all --configuration=demo

Затем я просто копирую содержимое dist / my-ui-project-наименование сервера и все готово (фактический процесс сборки также выполняется на облачном сервере).

Что я нахожу странным, так это необходимость выполнить вторую сборку ng непосредственно перед тем, как я соберу свой основной проект, которыйимпортирует мою библиотеку или мой основной проект не сможет найти мой библиотечный проект.Это, конечно, не нужно для ng serve, и только сборка библиотеки работает просто отлично.

Также у меня проблема с флагом --prod, так как, по-видимому, один из моих компонентов не найден:

ERROR in : Cannot determine the module for class SideNavMenuItemComponent in <my_path_to_project>/projects/my-lib-project-name/src/lib/layout/sidebar/side-nav-menu/side-nav-menu-item.component.ts! Add SideNavMenuItemComponent to the NgModule to fix it.

Это, конечно, происходит только во время сборки --prod и прекрасно работает без флага или в ng serve, поскольку я явно включил его в NgModule.

Это заставляет меня задуматьсячто мой процесс сборки, вероятно, не самый лучший.У кого-нибудь есть настройка процесса сборки для их многопроектного приложения Angular?С множественным управлением средой как вишней на вершине?

Я только добавил несколько сценариев в основной package.json, и мой angular.json имеет конфигурацию сборки по умолчанию.Кроме того, в настоящее время мы все еще работаем над Angular 7, и в ближайшее время перейдем на 8.

...