Это не ошибка.Когда вы запускаете ng build --prod
, вы запускаете его с включенной AOT компиляцией.Это означает, что приложение компилируется перед сборкой, чтобы убедиться, что все установлено правильноПохоже, что вы загружаете разные модули при загрузке приложения, и я не уверен, что компиляция AOT согласится с этим.Вы можете перейти на использование Ленивые загруженные модули и разделить свои приложения на 2 разных модуля.
Если вы действительно хотите, то попробуйте ng build --prod --aot=false
или ng build --prod --aot false
.
, так какэто похоже на масштабирующее приложение, я думаю, что лучшим решением для вас будет использование шаблонов MonoRepo.у вас будет несколько приложений с библиотеками, и они оба будут находиться в одном проекте.Вы можете использовать многократное использование, и обслуживание будет проще.
Проверьте Nrwl/Nx
для Angular
Здесь они предоставляют отличные инструменты для этого.Он поддерживает угловые вычисления, используя схемы.Я думаю, это вам очень поможет.может быть, вам нужно будет развернуть свои приложения в разных местах или использовать несколько разных сред для использования в каждом приложении, и этот monorepo идеально подходит для достижения этого ИМХО.
Подробнее о monorepos из Википедия :
Преимущества Монорепо имеет ряд потенциальных преимуществ перед отдельными хранилищами:
- Простота повторного использования кода - аналогичные функциональные возможности или протоколы связи можно абстрагировать в общие библиотеки и напрямую включать в проекты без необходимости использования менеджера пакетов зависимостей.
- Упрощенное управление зависимостями -В среде с несколькими репозиториями, где несколько проектов зависят от сторонней зависимости, эта зависимость может загружаться или создаваться несколько раз.В monorepo сборка может быть легко оптимизирована, так как все ссылочные зависимости существуют в одной кодовой базе.
- Атомная фиксация - Когда проекты, которые работают вместе, содержатся в отдельных репозиториях, выпуски должны синхронизировать, какие версии одного проекта работают с другим.И в достаточно больших проектах управление совместимыми версиями между зависимостями может стать адом зависимости. [5]В monorepo эту проблему можно устранить, поскольку разработчики могут атомарно изменять несколько проектов.
- Масштабный рефакторинг кода - Поскольку разработчики имеют доступ ко всему проекту, рефакторинг может гарантировать, что каждый компонентпроекта продолжает функционировать после рефакторинга.
- Сотрудничество между командами - В монорепорте, использующем исходные зависимости (зависимости, скомпилированные из исходного кода), команды могут улучшить проекты, над которыми работают другие команды.Это приводит к гибкому владению кодом.
Ограничения и недостатки
- Потеря информации о версии - Хотя это и не требуется, в некоторых сборках monorepo используется один номер версиивсе проекты в репозитории.Это приводит к потере семантического контроля версий для каждого проекта.
- Отсутствие защиты для каждого проекта - При использовании разделенных репозиториев доступ к репозиторию может быть предоставлен в зависимости от необходимости.Monorepo предоставляет доступ для чтения ко всему программному обеспечению в проекте, возможно, представляет новые проблемы безопасности.
Надеюсь, это поможет вам