Лерна нужна чтоб мы могли объединить два рабочих проэета с меньшими усилиями.
Она позволяет изолировать готовые проэкты, со свомим системами билдеров, конфигами, версиями пакетов
Так же создавать рядом новый проэкт (кор)
и подлючать кор в другие проэкты
Так же она нам поможет по этапно унифицировать билдеры конфиги и пакеты в проэктах
и выносить их в рут для всех проэктов
- 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