Существует приложение 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? Есть ли еще варианты?
Да, на эту фичу я натыкался в интернетах, почитал немного о projects. Но как это решает проблему? Проекты ведь будут просто вложенные, и всё, по сути ничего не изменится, потому что для разработки одного проекта мне придется всегда таскать с собой другой проект. А это в перспективе будет немного (очень) напрягать, потому что когда дочерних проектов будет 5-10, их все придётся загружать чтобы поправить одну букву в одном из них. Или я чего-то не понял в документации,