참조 : https://toss.tech/article/node-modules-and-yarn-berry
Toss Tech 블로그를 탐구하고 공부하던 중 yarn berry에 대한 글을 일게 되었습니다.
최근, 기존 프로젝트를 마지막으로 새로운 모듈을 시작하게 되면서 node_modules에 대한 의존성 관리 대신 yarn berry를 구축해보면 어떨까 하여 간단하게 구축해본 부분을 적어볼까 합니다.
yarn berry 는 기존 Node.js를 위한 패키지 관리 시스템으로써, npm의 패키지 관리하는 고질적인 문제나 큰 용량, 또는 package.json에 명시되지 않은 유령 dependency등을 해결하기 위한 패키지 관리 시스템 입니다.
[https://github.com/yarnpkg/berry](Yarn Berry Github)에서 확인 하실 수 있습니다.
PnP라는 개념 ( Plug n Play ) 라는 개념으로 pnp 자체에 버전, 위치, 의존성 등을 담고 관리하게 됩니다.
yarn(v2,v3) 에서는 yarn install 시 node_modules를 생성하지 않고,
기존 .yarn/cache 폴더에 zip파일로 저장하고 해당경로를 .pnp.js에 명시하게 됩니다.
기존에 yarn이 설치가 되어있으신 분들은 yarn set version berry
을 이용하여 버전을 변경할 수 있습니다.
주의 사항) yarn set version berry 을 하였는데도 버전이 변경되지 않는다면, 기존 프로젝트의 yarn.lock 파일과 node_modules를 지우고 수행해보시길 바랍니다. (이것 때문에 한참 헤매게 된...)
.gitignore에 추가
# zero-installs
.yarn/*
!.yarn/cache
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
코드를 입력하세요
또한 vscode에 extension을 설치 해줍니다.
기본적으로 .yarn/cache에 올라가 있는 패키지들은 zip파일로 되어있기 때문에 zipfs
의 익스텐션을 설치 해줍니다.
그다음
yarn dlx @yarnpkg/sdks vscode
코드를 입력하게 되고 vscode에서 메세지가 뜨게 되는데,
해당 메세지의 allow를 수행하여 줍니다.
아직은 yarn berry에 대한 기본적인 세팅만 해놓은 상태여서, 프로젝트를 진행하면서 발생하게 된 부분에 대해 따로 글을 적어볼 예정입니다.
부족한 글 읽어주셔서 감사합니다.