저는 프론트엔드 개발자를 희망하는 마이스터고등학교 학생입니다.
어느 날 토스 프론트엔드 개발자분들께서 운영하시는 toss.tech를 둘러보던중에 Yarn Berry 관련 아티클을 읽게 되었습니다. 그래서 관심이 생겨 공부해보게 되었고, 이 글은 제가 Yarn Berry로 마이그레이션 하다가 겪은 우여곡절을 공유하고, 그 방법에 대해서 포스팅 했습니다.
(Yarn Berry에 대해서 알고 싶으시다면 토스 FE 기술 블로그를 참고하세요.)
우선 제가 지금 세팅하고 있는 프로젝트는 create-react-app --template typescript
로 생성한 환경입니다.
yarn
버전 업그레이드
본인의 방법으로 yarn 버전을 최신으로 올려놓으세요.
ex) npm install -g yarn
yarn berry
로 버전 올리기
yarn set version berry
를 프로젝트 루트 디렉터리에서 실행해주세요.
만약 위 명령어를 실행해도 안된다면
yarn policies set-version
로 입력해주시면 됩니다.
(선택사항 ) PnP를 선택하지 않고 node_modules
방식을 고수하고 싶으시다면 선택하세요.
2
를 실행하셨다면 .yarnrc.yml
파일이 생성됩니다. 이 파일에 nodeLinker: node-modules
코드를 추가해주시면 됩니다.
* 주의 : Default가 PnP이긴 하지만 혹시 .pnp.cjs
파일이 생성되지 않을때가 있는데 그럴때는 nodeLinker: "pnp"
코드를 입력해주시면 됩니다.
패키지 다운로드 하기
yarn
또는 yarn install
를 프로젝트 루트 디렉터리에서 실행해주세요.
타입스크립트가 아닌 환경에서는 여기에서 설정이 끝납니다.
gitignore
zero-install을 쓴다면 첫번째를 쓰지 않는다면 두번째를 작성하자
.yarn/* !.yarn/cache !.yarn/patches !.yarn/plugins !.yarn/releases !.yarn/sdks !.yarn/versions
.pnp.* .yarn/* !.yarn/patches !.yarn/plugins !.yarn/releases !.yarn/sdks !.yarn/versions
Type-Script
와 함께 사용하기
yarn init -2
을 입력하여 초기화 시켜준다. 그 후 다음 코드를 입력하여 vscode에서 쓰기 위한 sdk를 설치해주세요. yarn dlx @yarnpkg/sdks vscode
그렇게 되면 공식문서에서 말하는 방식은 다 끝나게 되었는데
yarn start
나 yarn dev
가 실행이 안되는 경우가 생기기도 합니다. (react-script가 안됨)
무엇이 문제이냐 하면 eslintConfig
가 원래 package.json
에 있는데 이렇게 되면 불러올 수 없다고 합니다.
그래서 따로 /.eslintrc.json
을 만들고 코드를 옮겨주도록 해야합니다.
그런데도 안되는 경우가 있습니다.
제가 봤을때는 PnP 모드가 모듈 이행 작동 방식이 더 엄격해서 그런것 같은데 이 경우에는 pnpMode: loose
를 yarnrc.json
에 작성해도 될 듯 하지만,
저는 이 방법을 쓰지 않고 yarn add eslint-config-react-app
패키지를 다운로드 받아 해결했습니다.
실행
yarn
을 쳐서 세팅을 시키고 커맨드에 실행 스크립트 치면 됩니다.