안녕하세요 블로그 독자 여러분
저는 현재 위티라는 기업에 기업협업을 진행중이에요
여기선 프로젝트를 진행할 때 모노레포와 lerna 라는 걸 사용하는데 이에 대해서 간단하게 설명해보려고 합니다
모노(mono)는 단일을 의미하고, 레포(repo)는 우리가 git에서 자주썼던 레파지토리(repository)를 의미합니다
따라서 모노레포란 멀티레포(multi-repo)에 반대되는 개념으로서 하나의 저장소에 여러 프로젝트, 패키지를 가진것을 말하지요
모노레포는 다음과 같은 장점들이 있기 때문에 씁니다
여러 패키지에서의 변경사항을 하나의 커밋과 PR로 제출할 수 있다
모든 구성원들이 모든 코드에 접근할 수 있다
러나는 단일 저장소에서 다양한 패키지 구성을 도와주는 라이브러리 입니다.
코딩을 하다보면 워낙 까는것도 많고 구조도 복잡해서 패키지가 꼬일때가 많은데 그럴 때마다 요 녀석이 아주 유용하게 쓰입니다.
lerna에는 init, run, diff 등 다양한 명령이 있는데 그 중에서 제가 써본것은 lerna clean 이라는 명령입니다.
터미널에 yarn lerna clean을 하게되면 각 패키지들의 node_modules 폴더들이 전부 삭제됩니다(다만 맨 위의 루트 디렉터리의 node_moduels는 삭제되지 않음!)
각 패키지들을 돌아다니면서 node_modules들을 일일히 삭제하지 않아도 명령 하나에 전부 삭제를 할 수 있게되는 거지요
그리고 이렇게 node_moduels를 전부 날리고 yarn install을 다시하게 되면... module not found 라는 악의무리가 종적을 감추게 되지요!
오늘은 여기까지
다음 시간에 또 만나요 ~
참고: https://class101.dev/ko/blog/2019/07/12/tony/
참고: https://medium.com/jung-han/lerna-%EB%A1%9C-%EB%AA%A8%EB%85%B8%EB%A0%88%ED%8F%AC-%ED%95%B4%EB%B3%B4%EB%9F%AC%EB%82%98-34c8e008106a