Я использую Лерну для управления монорепо. У меня есть такая структура:
пакеты - приложение - зависимость1 - зависимость 2 приложение использует зависимость1 и зависимость2, зависимость1 также использует зависимость2. Главное, что мы хотим развернуть, это приложение, скажем, это веб-приложение.
Итак, если я хочу работать локально, я бы запустил lerna bootstrap. Это установит зависимости в каждом из пакетов и свяжет их, чтобы я мог видеть изменения во время разработки.
Теперь я фиксирую и pu sh в своем репо (gitlab, но это будет то же самое для любого другой). Может быть, я ошибаюсь, но то, что мне кажется логичным:
- git ветвь проверки
- git происхождение удаленного набора URL, так что Лерна может сделать sh репо пакета. json изменения
- запустите lerna publi sh, чтобы увидеть, какие пакеты были изменены, и опубликуйте sh их в репозитории npm и подтвердите git репо пакета. json изменения.
- перейдите в папку приложения и установите пакеты (это также установит опубликованные на предыдущем шаге)
- запустите сценарии сборки и развертывания
Я бы сказал, что нам не нужно запускать lerna bootstrap, это установит все зависимости в каждом пакете и свяжет их, верно? Мне просто нужно развернуть веб-приложение. Кроме того, если я только что изменил один пакет, мне не нужно устанавливать зависимости во всех пакетах.
Если у меня больше пакетов, CI, по моему мнению, занимает много времени, без необходимости. ..
Я вижу несколько примеров онлайн, где lerna bootstrap всегда является частью CI. Это правильный подход?