Лерна нужна чтоб мы могли объединить два рабочих проэета с меньшими усилиями.
Она позволяет изолировать готовые проэкты, со свомим системами билдеров, конфигами, версиями пакетов
Так же создавать рядом новый проэкт (кор)
и подлючать кор в другие проэкты
Так же она нам поможет по этапно унифицировать билдеры конфиги и пакеты в проэктах
и выносить их в рут для всех проэктов
- npm install --global lerna
- lerna bootstrap --hoist (чтобы установить все зависимости (включая символические ссылки).
lerna add packagename
добавить в каждый проэкт packagename в dependencieslerna add packagename --dev
добавить в каждый проэкт packagename в devDependencieslerna add packagename --scope=projectname
добавить packagename только в projectnamelerna add projectname1 --scope=projectname2
добавит projectname1 в projectname2lerna bootstrap
создаст node_modules в каждом projectnamelerna bootstrap --hoist
поднимет все packagename из node_modules в рут для всех projectnamelerna run command
запустить command в каждом projectnamelerna run --scope projectname command
, запустить command только projectnamelerna clean
, удалит node_modules из всех packages
примечание: projectname - это имя модуля, которое указано в package.json .name
для уcтановки всяких дев тулзов типо линта прикомита и т.п. используйте npm i -D packagename
с командой lerna bootstrap --hoist
могут быть проблемы когда в двух и более project будет одинаковый package, но с разными версиями, если вдруг такой появится, надо будет указаьб в lerna.json [{"version":"independent"}]
источники
в целом про лерну (старая версия лерны, некоторые команды не актуальны)
команда add
команда bootstrap
команда run