패키지 매니져 정리 - 2편(yarn berry)

min_99·2024년 3월 16일

packagemanager

목록 보기
2/2

1. yarn berry?

  • yarn berry는 yarn v2이상을 부르는 명칭입니다.
  • 이에 따라서 기존의 yarn v1은 yarn classic이라고 부르게 되었습니다.

[사용방법]

npm install -g yarn
yarn set version berry

2. Plug'n'Play

  • 기존의 무거웠던 node_modules를 생성하지 않고 패키지들에 대한 정보를 .zip파일로 관리 합니다.
  • 패키지 의존성 정보를 .zip 파일로 압축하여 .yarn/cache 폴더에 저장하고 의존성을 찾을 수 있는 정보를 .pnp.cjs파일에 기록합니다.
  • .pnp.cjs는 의존성 트리를 중첩된 맵으로 표현하지 때문에 디스크 I/O없이도 패키지가 어떤 라이브러리에 의존하는지, 어디에 위치하는지를 바로 알수 있습니다.
  • 따라서, 패키지의 위치를 정확히 알 수 있기 때문에 시간도 단축되고, 중복 설치도 방지 할 수 있습니다.

3. Zero Install

  • yarn PnP는 의존성을 압축 파일로 관리하기 때문에 의존성의 용량이 작습니다.
  • 예를 들어, 일반적인 node_modules는 1.2GB 크기이며 13만 5천개의 파일로 구성되어 있는 반편, yarn PnP의 의존성은 139MB크기의 2천개의 압축파일로 구성됩니다.
  • 용량과 파일의 수가 적기 떄문에 의존성을 Git으로 관리 할 수 있습니다.
  • 이처럼, yarn berry에서 의존성을 버전관리에 포함하는 것zero-install이라고 합니다
  • zero-install을 사용하면, git-clone 이후 별도의 설치 필요없이 바로 사용할 수 있습니다.

    [Zero Install 장점]
    1) 새로 저장소를 복제하거나 브랜치를 바꾸었을 때 yarn install을 실행하지 않아도 됩니다.
    2) CI에서 의존성을 설치하는 시간을 크게 절약할 수 있습니다.
    3) 오프라인 캐시 기능으로 인터넷이 연결되지 않아도 패키지를 사용할 수 있습니다.


[참고자료]

https://toss.tech/article/node-modules-and-yarn-berry
https://usage.tistory.com/147

0개의 댓글