lazalu68
@lazalu68
Salmon

Как выделить из Angular приложения ядро?

Существует приложение old-lovely-app, всем оно хорошее и прекрасное. Настолько это приложение нам понравилось, что решили мы на его основе сделать еще одно приложение - brand-new-app. Его разработку решили вести в отдельной ветке репозитория old-lovely-app. И всё бы хорошо, да только когда появилась надобность добавить пару новых фич и поменять пару старых фич в old-lovely-app, тогда стало очевидно что разработка в рамках одного репозитория это не очень целесообразно: тк изменения в ядре old-lovely-app должны быть доступны и для brand-new-app, то эти фичи приходится либо вручную переносить, либо черри пикать. Можно конечно сделать еще одну ветку под базовый функционал использующийся и в том и другом приложении, и при изменениях в ней делать её мердж в old-lovely-app и brand-new-app. Ни один из этих способов не кажется удобным по различным причинам,

Стало понятно, что выносить функционал надо полноценно - либо в отдельный репозиторий (например используя git submodules), либо в отдельный npm пакет. Ничего умнее не придумалось. И тот, и другой способ предполагают значительную доработку, так что вместо того чтоб сразу бросаться за рефакторинг решил сначала узнать у опытных в этом деле людей как они решали такую проблему,

Каким способом проще выделить основной функционал приложения old-lovely-app так чтобы им могло пользоваться приложение brand-new-app? Что будет легче и быстрее организовать - запихнуть весь нужный функционал в npm-пакет, которым будут пользоваться оба приложения, или просто использовать old-lovely-app как git подмодуль для brand-new-app? Есть ли еще варианты?
  • Вопрос задан
  • 278 просмотров
Пригласить эксперта
Ответы на вопрос 1
@LastDragon
Каким способом проще выделить основной функционал приложения old-lovely-app так чтобы им могло пользоваться приложение brand-new-app?


Один проект может содержать несколько приложений и библиотек, в документации неплохо об этом написано. Но есть пара нюансов:

  • нету способа собрать всё и сразу - придется городить кучку скриптов чтобы сначала собирались (общие) библиотеки/модули, потом приложения
  • библиотеки поддерживают только относительные пути, поэтому если в приложении они не использовались, придется всё переписать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы