Как стать автором
Обновить

Множество JS-пакетов в одном репозитории

Время на прочтение 8 мин
Количество просмотров 19K
Блог компании Амперка JavaScript *ReactJS *

image


Хабрадевелоперам, привет! Не так давно мы начали разрабатывать комплексный проект, у которого есть или планируется несколько видов фронт-енда, множество сервисов бэк-енда, интерфейс командной строки, демоны и много ещё чего. У всего этого в свою очередь есть шареный код, а совершенно новые приложения должно быть возможным собирать из имеющихся кирпичиков простым и понятным образом.


Если не занудствовать с терминологией, мы делаем платформу. Платформу для визуального программирования под DIY-электронику.


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

Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 15

Подготовка к захвату мира

Время на прочтение 6 мин
Количество просмотров 6.6K
Разработка веб-сайтов *JavaScript *ReactJS *
Туториал

Спрашивается, о чём мой проект? А я сам не знаю. Планы меняются. Идей много. Но всегда есть общий базовый функционал. Вот я пока про это. Уже 5 месяцев. После весеннего обострения, в приступе одиночества, хочу поделиться некоторыми наработками.


Весеннее обострение

Читать дальше →
Всего голосов 38: ↑23 и ↓15 +8
Комментарии 5

Разработка в монорепозитории. Доклад Яндекса

Время на прочтение 11 мин
Количество просмотров 20K
Блог компании Яндекс JavaScript *Интерфейсы *Управление разработкой *Системы сборки *
Моё имя Азат Разетдинов, я в Яндексе уже 12 лет, руковожу службой разработки интерфейсов в Я.Недвижимости. Сегодня я хотел бы поговорить про монорепозиторий. Если у вас всего один репозиторий в работе — поздравляю, вы уже живете в монорепозитории. Теперь о том, зачем он нужен другим.



Как сказала руководитель службы разработки API Яндекс.Карт Марина Перескокова — посадил дед монорепу, выросла монорепа большая-пребольшая.

Читать дальше →
Всего голосов 31: ↑24 и ↓7 +17
Комментарии 40

Масштабирование CI/CD монорепозитория

Время на прочтение 3 мин
Количество просмотров 5K
DevOps *
Из песочницы

Lerna


Дано


  1. Монорепозиторий на базе Lerna и Yarn workspaces.
  2. Десяток приложений, и десятки общих пакетов на TypeScript, Angular, NodeJS.
  3. Высокое покрытие тестами самых разных мастей (модульные, интеграционные, e2e).
  4. и Atlassian Bamboo CI/CD.

Задача


Ускорить имеющиеся пайплайны в 2 раза (до, хотя бы, получаса). Попутно повысив стабильность до 90%.


Забегая вперед, скажу что требуемые показатели были достигнуты.

Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 6

Монорепозитории NX и Lerna, или Туда и обратно

Время на прочтение 12 мин
Количество просмотров 9.9K
Программирование *Git *Системы управления версиями *DevOps *Микросервисы *

Как все знают, монорепозиторий - это несколько частей проекта (приложения, сервисы, библиотеки и т.д.), которые хранятся в одном репозитории. Плохо это или хорошо - не тема данной публикации. Но все же упомяну некоторые причины по которым я решил их использовать.

В скриптах деплоймента (или в моем случае еще и в настройках GitLab репозитория), нужно сформировать токены/ключи доступов к докер реджистри, кубернетесу, разным кластерам и т.д. И если у вас пару сервисов, то это не проблема, но если сервисов 15-20, то это весьма болезненный процесс. Особенно, когда настройки кластера меняются и нужно эти изменения вносить во все репозитории.

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

После того как мы перешли на монорепозиторий появилось еще несколько преимуществ, без которых, в принципе, тоже можно жить, но все равно это был приятный бонус.

И вот мы решили использовать монорепозиторий, но с чего начать и как все организовать?

Поехали!
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 4

Организация кодовой базы и тестирования в монорепозитории

Время на прочтение 10 мин
Количество просмотров 5.2K
Блог компании AvitoTech Разработка веб-сайтов *Системы управления версиями *Управление разработкой *

Всем привет. Меня зовут Илья, я фронтенд-разработчик из юнита BuyerX в Авито. Хочу поделиться тем, каким образом у нас в команде организовано хранение кодовой базы, почему мы пришли к использованию монорепозитория и как улучшаем DX-работы с ним, а также кратко рассказать про организацию тестирования.


Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 8

lerna + CI =? Или как не запутаться в трёх соснах

Время на прочтение 11 мин
Количество просмотров 8.8K
Node.JS *
Из песочницы

О чём пойдёт речь?

Пилотный пост будет посвящён интересной проблеме с которой мы столкнулись при попытке организовать CI/CD для монорепозитория с lerna. Сразу скажу, что этот пост:

* не про монорепозитории. Плюсы и минусы монорепы, как концепции, уже давно описаны в множестве постов, в том числе на Хабре (этот довольно холиварный, кстати)

* не про инструменты для управления монорепозиториями. Монорепу можно реализовать при помощи Nx, rush, даже просто yarn workspace. Но так получилось, что мы выбрали lerna и поживём с ней какое то время.

* не про пакетные менеджеры. Могу порекомендовать хороший видос со сравнением npm, yarn и pnpm и офигенную серию постов в которой работа npm объясняется с самых азов и очень тщательно. У нас npm (пока)...

* не про nestjs. Но он классный!

Обо всём этом будет рассказано только в том объёме, который нужен для понимания проблематики.

Тогда о чём? О том, как сварить это всё вместе.

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 2

Бенчмарки VKUI и других ребят из UI-библиотек

Время на прочтение 6 мин
Количество просмотров 8.3K
Блог компании VK ВКонтакте API *GitHub *Тестирование веб-сервисов *

Меня зовут Григорий Горбовской, я работаю в Web-команде департамента по экосистемным продуктам ВКонтакте, занимаюсь разработкой VKUI. 

Хочу вкратце рассказать, как мы написали 8 тестовых веб-приложений, подключили их к моно-репозиторию, автоматизировали аудит через Google Lighthouse с помощью GitHub Actions — и как решали проблемы, с которыми столкнулись.

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Комментарии 6

NPM монорепозиторий (Lerna + автодеплой GitHub Actions)

Время на прочтение 5 мин
Количество просмотров 7.5K
JavaScript *DevOps *
Из песочницы

Привет! Мы GrandCore Foundation. Создаём идеальную организацию для развития свободных проектов: ПО, этичных онлайн-сервисов и стандартов изделий. Подробнее читайте здесь. Присоединяйтесь к нашему чату в Telegram. Всегда рады единомышленникам!

Для нашего нового проекта — универсального генератора документации у нас появилась потребность в создании монорепозитория, поскольку функционал генератора будет расширяться плагинами. Ниже читайте как мы полностью автоматизировали данный процесс при помощи GitHub Actions и Lerna.

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 16

RamblerMeetup&Frontend

Время на прочтение 2 мин
Количество просмотров 640
Блог компании Rambler&Co

Медиа и музыка ещё никогда не были так близки, как на совместном митапе Rambler&Co и СберЗвука (входят в группу компаний СберИнтертеймент).

10 февраля в 19:00 лучшие технические специалисты медиахолдинга Rambler&Co и аудиосервиса СберЗвук расскажут об инклюзивном 3D-контенте, разберут способы создания монорепозитория и обсудят эволюцию React-приложений.

Митап пройдёт в онлайн-формате. Регистрация обязательна – только так мы сможем напомнить вам о мероприятии и прислать ссылку на трансляцию.

Читать далее
Всего голосов 3: ↑1 и ↓2 -1
Комментарии 2

Перерождение Lerna. Что нового в Lerna 6?

Время на прочтение 5 мин
Количество просмотров 3.2K
JavaScript *TypeScript *
Перевод

Состоялся релиз Lerna 6!!! В статье собрано все, что вы должны знать о новом опыте, который предлагает Lerna!

Lerna продолжает развиваться. Если вы и так это знаете, то можете не читать дальше. Но многие все еще не слышали, что Lerna вернулась, не устарела и даже получает новые фичи. Мы из Nrwl являемся создателями Nx, и, учитывая нашу экспертизу в монорепозиториях, мы предложили взять на себя развитие Lerna, когда она была объявлена "мертвой" в апреле 2022 года.

Когда мы получили управление над Lerna начались настоящие американские горки. Мы запустили совершенно новый сайт, обновили документацию и сделали Lerna в 10 раз быстрее. И вот, Lerna 6 вышла!

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Комментарии 3

Как создать монорепозиторий с несколькими сервисами, используя Lerna и Yarn?

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 1.5K
JavaScript *DevOps *
Из песочницы
Перевод

Для разработчиков построение масштабируемых и поддерживаемых приложений может быть значительным вызовом, особенно при работе с большими кодовыми базами и несколькими сервисами. К счастью, использование подхода монорепозитория в сочетании с мощными инструментами, такими как NX, Lerna и Yarn, может обеспечить упрощенный процесс разработки, который повышает общность кода и возможность повторного использования.

Это подробное руководство нацелено на помощь разработчикам в настройке монорепозитория с использованием NX, Lerna и Yarn. Руководство включает подробную информацию о начальной настройке, структуре каталогов, управлении зависимостями, тестировании и развёртывании.

После освоения туториала разработчик получат полное понимание того, как создавать масштабируемые и поддерживаемые приложения, используя подход монорепозитория. Он также получит знания о необходимых инструментах и знаниях для перехода на новый уровень разработки. Давайте приступим!

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 1