yarn berry는 새로운 패키지 관리 시스템으로 기존의 npm
, yarn
의 패키지의 비효율적인 매니징을 개선한 것입니다.
yarn berry는 고전 패키지 매니저의 문제를 Plug’n’Play
방법을 채택하여 해결하고 하고 있습니다.
Plug’n’Play
는 node_modules
를 제거하고 대신 .pnp.js
파일을 사용합니다.
.pnp.js
파일은 프로젝트에 설치된 모든 패키지를 yarn이
하나는 패키지 이름과 버전을 디스크의 해당 위치에 연결하고
다른 하나는 패키지 이름과 버전을 종속성 목록에 연결합니다.
Plug’n’Play
방식의 장점은
- 이제 설치가 거의 즉시 이루어집니다. Yarn은 (잠재적으로 수만 대신에) 단일 텍스트 파일을 생성하기만 하면 됩니다. 주요 병목 현상은 디스크 성능보다는 프로젝트의 종속성 수가 됩니다.
- 감소된 I/O 작업으로 인해 설치가 더 안정적이고 안정적입니다. 특히 Windows(배치로 파일을 쓰고 제거하면 Windows Defender 및 유사한 도구와 다양한 의도하지 않은 상호 작용이 발생할 수 있음)에서 I/O node_modules작업이 많을수록 실패하기 쉽습니다.
- 종속성 트리의 완벽한 최적화(완벽한 호이스팅이라고도 함) 및 예측 가능한 패키지 인스턴스화.
- 생성된 파일은 Zero-Installs.pnp.cjs 노력 의 일부로 저장소에 커밋할 수 있으므로 처음 부터 실행할 필요가 없습니다 .yarn install
- 더 빠른 응용 프로그램 시작! 노드 확인은 거의 이전만큼 파일 시스템 계층을 반복할 필요가 없습니다(곧 그렇게 할 필요가 없을 것입니다!).
yarn 최신버전으로 다운로드 해야합니다
폴더 이동
$ cd {Project-folder}
yarn-berry로 버전 셋팅
$ yarn set version berry
yarn set version berry
을 싱행하면 node_modules
가 삭제되고, .pnp.js
파일이 추가 됩니다.
만약 .yarnrc.yml파일에 아래와 같이 nodeLinker가 node-modules를 가리키고 있다면, Yarn berry의 PnP 방식의 zip 아카이브로 관리되는 것이 아닌 기존의 node_modules 의존성 폴더 방식으로 관리되게 됩니다. 그러니 이 속성을 지우고 .
# nodeLinker: node-modules
yarnPath: .yarn/releases/yarn-berry.js
yarn install
Zero Install
은 외부 패키지들을 원격 레파지토리에 올려놓고 프로젝트를 클론 받았을 때 Install 받는게 적은 프로젝트로 만들 수 있습니다.
셋팅 방법은 프로젝트 폴더안에 .gitignore
파일에 택스트를 추가해 주면 됩니다.
# Zero Install
.yarn/*
!.yarn/cache
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions