npm과 yarn v1이 가지고 있던 고질적인 문제점을 해결해주는 Yarn Berry의 등장!
node_modules의 큰 용량 차지, package.json에 명시되어있지 않은 패키지를 사용하는 유령 의존성 등을 해결해줄 수 있다.
pnp.cjs는 의존성을 확인할 수 있는 파일이다.
기존의 npm이나 yarn v1 같은 경우 의존성을 나타내기 위해 node_modules 디렉토리를 생성한다.
하지만 node_modules는 간단한 프로젝트이더라도 몇백 메가바이트에 육박하는 큰 크기를 차지한다.
뿐만 아니라 디스크 상에 있는 디렉토리이다보니 의존성을 확인하기 위해서는 수많은 디스크의 I/O 작업이 호출된다.
이러한 디스크의 I/O 작업은 굉장히 느리다.
그래서 yarn berry는 .pnp.cjs를 사용해 디스크 I/O 같이 느린 작업을 메모리 상의 자료구조로 대체하여 이를 개선한 것이다.
yarnrc는 yarn의 내부 설정을 관리하는 파일이다.
pnp
, pnpm
,node-modules
가능)yarn v1 혹은 npm에서 마이그레이션하는 지금과 같은 상황에서는 yarn install시에 nodeLinker: node-modules가 자동으로 추가된다.