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

Комментарии 4

НЛО прилетело и опубликовало эту надпись здесь
Не пробовали Rush.js (rushjs.io) от Microsoft?
Вот буквально вчера о нем узнал. Сейчас изучаю.

Очень актуальная для меня тема. Поделюсь своим опытом по решению ваших проблем, описанных в конце статьи:

Публикация библиотек возможна только вручную. Невозможно настроить CI/CD для этого дела, потому что повышение версии вынуждено создавать новый коммит с обновленными версиями.

Публикацию библиотек на самом деле можно очень даже изящно настроить для CI/CD. Суть в том, что вас никто не заставляет использовать lerna publish для повышения версий пакетов. Для этого есть специальная команда lerna version. И эта команда очень любезно создаёт новый коммит с добавлением гит тэга. А в CI/CD вы можете запускать джобу только на тэгированный коммит. Так что это не баг, а фича:) Можно спокойно пушить в мастер Work In Progress коммиты, но деплой произойдёт только после вызова lerna version, либо после ручного добавления гит тэга к коммиту.

Зоопарк версий. Это обратная сторона медали возможности версионности пакетов. Появилось 20 package.json, у которых одни и те же зависимости, но в разных версиях. Первое, что плохо - это их сложнее обновлять. Нужно пройти много файлов

Для этого есть простой и изящный yarn upgrade-interactive. Вот прям специально для этого он и сделан. Вообще, кстати, рекомендую присмотреться к yarn berry. Он поддерживает монорепозитории (workspaces), но при этом он не заменяет, а дополняет lerna. Например, команда lerna bootstrap больше не нужна, с этим справляется команда yarn.

А вот, кстати, недостаток под номером 1 я не понял. Можете рассказать подробнее, что не так?

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.