Skip to content

Latest commit

 

History

History
9 lines (5 loc) · 1.23 KB

ko.md

File metadata and controls

9 lines (5 loc) · 1.23 KB

monorepo

  • monorepo를 구성하기위해서는 일반적으로 package manager, package manager로부터 만들어낸 여러가지 workspace 관리하기 쉽도록 해주는 툴을 사용한다. 해당 종류는 lerna, turbo 등이 있다.

  • turbo를 활용했을때 일반적으로 각 workspace끼리 코드를 공유하는것은 문제가 없으나 이를 배포할때에는 번들링이 따로 필요함. 최근에는 esbuild를 기반으로 한 tsup 이라는 번들러도 좋음. 이는 typescript 패키지를 간단한 설정으로 번들링할 수 있도록 해준다.

  • 패키지를 모노레포 안에서만 사용하는 경우 npm에 배포할 필요가 없다. 또한 패키지를 사용하는 곳에서 import한 소스 코드를 직접 빌드해서 사용하기 때문에 별도의 번들링을 하거나 배포하지 않아도 된다. 하지만 패키지 코드에 대한 번들링이 전혀 이뤄지지 않았기 때문에 사용처에서 트랜스파일을 직접 수행해야 하기때문에 일반적으로는 사용처마다 번들링을 해준다.

  • turbo는 작업물에 대한 캐싱을 기본으로 하기때문에 turbo run dev와 같이 빌드 결과물이 없는 경우에는 캐시를 비활성화하는것이 좋다.