TIL

Migration 1

package manager migration

기존 npm을 사용하던 프로젝트를 yarn berry 패키지 매니저로 바꿔보려고 한다!
큰 프로젝트는 아니지만, 시간을 아끼는게 언제나 중요하니까 :)
어제 배운대로면 pnpm이나 yarn berry를 사용해보고 싶었는데,
마침 최근에 yarn을 한번 사용해봐서 yarn berry를 사용해보고자 했다.

다만 배포를 앞둔 프로젝트여서 팀원과 상의하며 뒤늦게 이것저것 바꾸기보다
혼자 레포지토리를 fork하여 이것저것 변경해보고 추후 적용해보려고 한다.

migration 과정

node 재설치 (nvm 설치)

yarn berry를 설치하고 yarn을 입력하자마자 벌써 에러 발생..
berry의 issue에서 같은 현상을 겪은 분은 node부터 재설치를 권했다.
이왕 node 재설치 하는 김에 package manager 알아볼 때 함께 본 nvm을 이용해볼까?로 넘어갔다.

brew를 이용해 nvm을 설치하고 NVM의 경로 설정을 ~/.zshrc 파일에 넣었지만,
source ~/.zshrc가 되지 않는다..!

임시 방편으로 ~/.profile에 경로 설정을 넣었지만 아직 터미널을 열때마다 source ~/.profile을 입력해야 하는 번거로움이 있다.
이거 꼭 해결해야해.!

yarn set version berry

nvm을 이용해서 node LTS 버전을 설치했다.
yarn 문서에서는 yarn init -2를 이용해 시작하지만, 그렇게 되면 기존 프로젝트의 package.json에 담긴 의존성이 모두 날아가게 된다.
yarn berry로 마이그레이션 하기 이 부분을 참고했다.

nodeLinker: node-modules? pnp?

.yarnrc.yml 파일에 nodeLinker: node-modules가 있다면,
기존의 node-modules 디렉토리를 유지하는 방식이고, 이 부분을 삭제하거나 nodeLinker: pnp로 바꾸면 PnP 방식을 사용하게 되는 것이다!

node-modules 상태에서 yarn install을 하게 되면 ..? 음? 차이점을 잘 모르겠다.
.yarn 디렉토리가 생기긴 했지만, npm처럼 node-modules가 생겼다?

그리고 nodeLinker: pnp로 바꾸고 install을 하면..?
.yarn/unplugged 디렉토리와 .pnp.cjs .pnp.loader.mjs 파일이 새로 생겼다.

음.. files be gitignored를 읽어보면서 좀 더 알아봐야겠다.