damir_sayahov
@damir_sayahov

Стоит ли хранить frontend 3 внешне похожих проектов в 1 репозитории и как с этим жить?

На данный момент есть 1 сайт и 1 репозиторий на битбакете(в нем пока что только фронтэнд).
Стили написаны по методологии БЭМ в SCSS, скрипты в обычном JS(JQuery), HTML компилируется из PUG.
Бэкенд на PHP и он отдельном репозитории в зачаточном состоянии.

В скором времени будет создаваться еще 1 сайт(а за ним скорее всего еще 1), у которого будет много похожих блоков.
Есть ли смысл так же держать отдельный репозиторий для фронта и использовать ее на 3 разных проектах, а бекенд держать так же отдельно?

Задумка такая, что добавив какой-то блок, можно быстро его завести на другом сайте без копипаста, а так же общие баги быстро фиксить сразу в 3 сайтах.
Как в таком случае организовать работу в плане гита?
Вообще стоит ли заморачиваться? Это случайно не попытка "выстрелить себе в ногу"?
Примерная структура фронта
5cd1f4772c1ea223301699.jpeg
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
@askhat
То что вы сейчас описали, называется монорепозиторий (не путать с модулями гита). Практика не новая, но сейчас обрела популярность, особенно во фронтенде. Подход имеет сторонников и противников, однако мы не будем переходить к священным войнам.

Это действительно может быть удобно. Например, чтобы выделить четвёртый проект из ваших трёх — содержащий скажем библиотеку компонентов и сторибук. Я нашёл для себя кейс при работе с реакт нейтив и реакт нейтив веб.

Из инструментов для организации могу посоветовать Lerna, ставший стандартом монореп. Или те же модули гита, если конечно умеете с ними работать.

Напоследок скажу, что несколько именитых компаний практикуют этот подход, на масштабах десятков проектов, и им кажется нравится.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Нет, не стоит. Разные проекты - разные репозитории.
Ответ написан
Комментировать
Robur
@Robur
Знаю больше чем это необходимо
положите все общее в отдельный пакет, пилите там все и расшарьте между проектами.
Пакет можно хоть как организовать - от npm и bower до своего велосипеда
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы