lerna로 되어 있는 프로젝트를 처음 접했을 때,
패키지간 import가 제대로 인식되지 않는다면 lerna가 설치되어있는지 확인해보자.
설치되어있어야 동작하는 것은 당연하기 때문
프로젝트와 내 로컬 환경의 lerna 버전이 다르면 많은 것이 꼬인다.
lerna 5.x.x와 달리 최근의 lerna 버전 7.2.0 에서는
yarn install을 하면 자동으로 link가 되기 때문에 $ lerna bootstrap
이 필요없고 lerna.json에"useWorkspaces": true
옵션도 필요 없다.
이를 모르고 bootstrap 명령어를 실행시킨다든지 하면 매우 꼬일 수 있음을 주의하자!
패키지간 인식이 안되는 경우가 생긴다.
만약 했다면,
lerna.json에 "useWorkspaces": true
을 유지한 채
$ yarn global add lerna@타겟버전
$ yarn cache clean
$ yarn install
를 하면 기존의 방식대로 link가 잘 동작된다.
패키지 A, B, C가 서로의 모듈을 쓰고 있을때,
코드의 수정 사항이 실시간으로 전체에 영향을 주게 하려면
수정하고자 하는 패키지에 가서
$ yarn link
를 해주고, 영향을 받는 패키지에 가서
$ yarn link "모듈명"
을 해주고 다시 build 하면 된다.
참고로 build 스크립트를 다음과 같이 설정해주었다.
"scripts": {
"build": "npx tsc -p . --outDir lib --watch",
},
끝