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-modulesyarnPath: .yarn/releases/yarn-berry.jsyarn installZero Install은 외부 패키지들을 원격 레파지토리에 올려놓고 프로젝트를 클론 받았을 때 Install 받는게 적은 프로젝트로 만들 수 있습니다.
셋팅 방법은 프로젝트 폴더안에 .gitignore 파일에 택스트를 추가해 주면 됩니다.
# Zero Install
.yarn/*
!.yarn/cache
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions