yarn berry란 node.js를 위한 새로운 패키지 관리 시스템으로 기존의 npm yarn v1의 패키지를 개선하여 빌드 시간을 단축시켜주고 개발과정에서 안정성을 높여줄 수 있습니다.
yarn v2부터는 yarn berry라고 합니다.
1. yarn berry의 기능
1) 기존의 방법
NPM은 node_modules폴더를 이용해서 의존성을 관리하는데 이 폴더의 구조는 매우 큰 공간을 차지하고 있다는 단점이 있습니다.
만약 여러 패키지들이 의존하는 모듈을 모두 설치한다면 node_modules구조는 매우 깊어지고 무거워집니다.
이 문제를 해결하기 위해 NPM, yarn v1에서는 각 패키지가 의존하고 있는 패키지들을 최상단으로 끌어올리는(호이스팅) 방법을 사용하여 중복 설치된 패키지를 최소화합니다.
하지만 호이스팅의 방법에도 유령의존성이라는 문제점이 있습니다.
유령의존성
1. package.json에 명시되지 않은 패키지 또한 사용가능해지는 경우가 생긴다.
2. package.json 패키지를 제거했을 경우 의존되는 내용도 함께 사라질 수 있다.
모든 문제점들을 해결하기 위해서 Yarn Berry는 PNP 전략을 이용하여 해결합니다.
2) yarn plug'n play 전략 (PNP전략)
yarn berry는 node_modules를 생성하지 않습니다. (찾아보니깐 vite를 사용한다면 생길 수 있다고 한다. 참고 블로그 )
대신 패키지 정보를 .zip파일로 압축해서 .yarn/cache 폴더에 의존성 정보를 저장합니다.
.pnp.cjs파일에서는 의존성의 정보의 위치를 기록하여 어떤 패키지가 어떤 라이브러리에 의존하며 위치는 어디에 있는지 확인할 수 있습니다.
이를 통해서 유령 의존성 문제를 해결하며 파일을 압축함으로써 패키지 용량 또한 줄일 수 있습니다.
3) zero install
npm을 사용하면 npm install후에 npm start를 하여서 실행해야되지만 yarn berry를 사용하면 바로 yarn dev를 사용하여서 실행이 가능합니다.
압축파일로 인해 작아진 용량으로 git으로도 관리될 수 있습니다. 즉 패키지들을 래포에 올려 프로젝트의 패키지를 별도의 install 없이 만들 수 있습니다.
또한 zero-install을 통해 CI/CD의 자동 배포 시간을 단축할 수 있다는 장점도 있습니다.
2. 사용법
yarn으로 프로젝트를 생성 후에 yarn set version berry를 입력 후 사용하면 됩니다.
1. yarn create vite [프로젝트 이름] --template react-ts
2. yarn set version berry
3. ...
'개발' 카테고리의 다른 글
input placeholder와 content 다른 색으로 만들기 (0) | 2024.02.18 |
---|---|
프로젝트 초기 세팅 (with yarn berry, vit, react, typescript, emotion...) (0) | 2024.01.29 |
npm & yarn 명령어 비교 (0) | 2024.01.22 |
개발팀장은 무엇을 해야할까? (0) | 2024.01.09 |
node.js, NPM은 무엇인가 (1) | 2023.11.28 |
댓글