lerna는 여러 project(package)를 하나의 프로젝트 안에서 관리해줄 수 있는 tool이다. 특정 버전(3.22.1)에 대해서 작성한다.
> npm install -g --save-exact lerna@3.22.1
> mkdir my-app
> cd my-app
> lerna init
# lerna init 하면 기본적으로 lerna.json, package.json, packages가 설치된다.
# packages directory가 생성되고, packages directory에 모든 project를 넣어주면 된다.
아래 cli, local-api, local-client는 각각 다른 project들이다. packages 아래에 넣어서 관리하게 된다.
.
├── lerna.json
├── package.json
└── packages
├── cli
├── local-api
└── local-client
4 directories, 2 files
> lerna add express --scope=cli # express를 packages/cli 에만 설치한다.
> lerna add local-api --scope=cli # local-api package를 package/cli 에만 설치한다.
> lerna add @types/node --dev --scope=cli # --save-dev로 설치한다.
> lerna run start --parallel # packages안에 있는 project들에서 start가 있는 것들을 모두 npm start 시킨다.
package.json의 dependency를 변경하고 나서 bootstrap 명령을 실행한다.
> lerna bootstrap # dependency를 바꾸고 새로 설치 (다시 link) 해주는 명령어
> lerna publish --no-push # github에 push하지 않고 npm publish