왜 yarn berry 일까?
🙋♂️ Q: 왜 NPM을 안쓰나요?
🧑💻 A: 다음과 같은 사항 때문입니다.
- 무겁고 복잡한 node_modules
- 비효율적인 의존성 검색 (유령의존성)
- 비효율적인 설치(다른 버전의 패키지 중복 설치)
what is pnp (Plug ‘n’ play)?
yarn2
에서의 새로운 전략 방식이다.이 방식을 사용하면 더이상
node_modules
에 패키지가 설치되지않고,.yarn/cache
폴더에 해당 의존성 정보가 저장되며 .pnp.js파일에 의존성을 찾을 수 있는 정보가 기록된다.예시
["styled-components", [ ["npm:5.3.0", { "packageLocation": "./.yarn/cache/styled-components-npm-5.3.0-965f77d02b-1f94f92b5d.zip/node_modules/styled-components/", "packageDependencies": [ ["styled-components", "npm:5.3.0"] ], "linkType": "SOFT", }] ]]
즉 pnp 방식의 장점으로는 다음과 같다.
- 효율적인 의존성 검색
- 엄격한 의존성 관리
- CI 시간 단축 (yarn zero install로 인해서)
출처: 패스트캠퍼스 강의
패키지 매니저 yarn berry 사용하기
전체적으로 다음 단계이다.
- yarn berry
- node linker 설정
- yarn install
- yarn berry와 IDE 통합
- yarn dlx @yarnpkg/sdks vscode
yarn berry
다음 순서를 따른다.
- 터미널에 입력
yarn create react-app my-foler --template typescript
- node_modules 삭제 후 터미널에 입력
yarn set version berry
.yarn/releases 파일 및 .yarnrc.yml 파일이 생성된다.
node linker 설정
- .yarnrc.yml 파일에
nodeLinker:pnp
를 추가해준다 - pnp방식으로 사용한다고 프로젝트가 이해하게 된다.
yarnPath: .yarn/releases/yarn-4.2.2.cjs nodeLinker: pnp # 추가
yarn install
- 터미널에 yarn install 입력
yarn install
yarn berry와 IDE 통합
- vscode 마켓에서
zipFS
플러그인 설치 - vscode는 zip파일을 해석할 줄 모르기 때문에 .tsx파일을 열면 빨간줄 그어져있음
yarn dlx @yarnpkg/sdks vscode
- 터미널에 다음을 입력
yarn dlx @yarnpkg/sdks vscode
- 다음 폴더와 파일이 뜬다.
여기서
settings.json
부분을 보면 이렇게 설정되어있다.{ "search.exclude": { "**/.yarn": true, "**/.pnp.*": true }, "typescript.tsdk": ".yarn/sdks/typescript/lib", "typescript.enablePromptUseWorkspaceTsdk": true }
typescript.tsdk부분이 의미하는 바는 .yarn에있는 타입스크립트를 읽어오겠다는 의미이다.
여기까지의 과정을 거치면 App.tsx파일에 빨간줄이 사라졌을거임
yarn zero install
yarn의 zero install을 사용할 때 gitignore에 포함시켜야하는 파일들이있다.
자세한 사항은 yarm pkg 에서 확인 가능함
# yarn zero install .yarn/* !.yarn/cache !.yarn/patches !.yarn/plugins !.yarn/releases !.yarn/sdks !.yarn/versions
test 파일 에러 해결하기
위의 사진과 같이 test파일에 에러가 나있다. 해결해보자.
터미널에 다음과 같이 입력하면 에러가 사라지는것 볼 수 있다.
yarn remove @testing-library/jest-dom yarn add -D @types/testing-library__jest-dom @testing-library/jest-dom
댓글