yarn workspace 와 친해지기🤗
nx 와 친해진지 얼마 안됐는데.....이직한 회사에서 yarn workspace 를 쓴다 허허
의존성 관련하여
- 워크스페이스 내부 앱에서 새로운 의존성을 추가하면?
- 루트의 yarn.lock 과
.yarn/cache
디렉토리에도 변경점이 잡힌다.
- 루트의 yarn.lock 과
- 왜?
- Yarn은 모노레포 전체의 의존성을 단일
yarn.lock
에서 관리한다. - 캐시도 루트의
.yarn/cache
에서 통합 관리한다. - 이는 의존성 충돌 방지와 디스크 공간 효율성을 위함!
- Yarn은 모노레포 전체의 의존성을 단일
- 의존성 변경은 전체 워크스페이스에 영향을 줄 수 있음
- lock 파일과 캐시는 중앙에서 관리됨
그러면 standalone 은 불가능한가?
- 결론부터 말하자면 가능함. 일단 yarn.lock 과 yarn.cache 는 루트에서 하나로 관리하는게 맞지만
node_modules
는 각 앱별로 생성됨 - 요
node_modules
는 앱별로 구성될 때, 루트의 node_modules 를 호이스팅 함.- 따라서 호이스팅 되지 않게만 하면 됨!
- 요거는 해당 앱의 node_modules에 별도로 설치됨!
- resolution 처리를 해주던가,
- nohoist 옵션을 처리해주던가.
- 하지만 왠만하면 권장되지 않음. 이렇게하면 디스크 공간이 더 늘어나기 때문에 빌드 시간도 늘어남!