[yarn berry] yarn berry package custom해서 사용하기

해달·2022년 11월 7일
0

yarn-berry

목록 보기
1/1

yarn berry는 참조중인 패키지를 커스텀 해서 사용하려면 yarn과는 명령어가 다르다

yarn 의 경우에는 라이브러리를 사용해서 쉽게 해결하는 경우가 있고(patch-package),

yarn berry의 경우에는 yarn에서 직접 제공해주는 patch 메소드를 이용해서 해주면 된다

변경 순서

예시로 설명해보자면 (vs code)

  1. 수정 할 라이브러리 이름을 기재한다.
    yarn patch swiper


  2. You can now edit the following folder : <url>
    문구 옆에 나오는 url을 클릭해서 이동

  3. 새 vsCode 창이 열리면 수정하고 싶은 부분을 수정한다.

  4. 수정한 뒤 Once you are done run <commit 명령어>
    커밋명령어를 적용시킬 내 프로젝트 터미널에 그대로 입력한다

  • 위 명령어가 제대로 적용 되었다면 package.json 파일 마지막 줄에
    라이브러리 이름@버전 : 적용시킨 patch 위치 가 생긴다
  "resolutions": {
    "swiper@^8.3.2": "patch:swiper@npm%3A8.3.2#./.yarn/patches/swiper-npm-8.3.2-1fc49d1c17.patch"
  }
}
  1. 설정이 완료 되었으면 yarn install 실행 후 변경사항을 레포지토리에 저장해서 올리면 된다.

에러

❌ 5번 순서를 생략한다면 아래와 같이 빌드시에 에러코드가 발생할 수 있다

The lockfile would have been modified by this install, which is explicitly forbidden

Internal Error: swiper@patch:swiper@npm%3A8.3.2#./.yarn/patches/swiper-npm-8.3.2-1fc49d1c17.patch::locator=boiler%40workspace%3A.: This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile

인스톨 후 다시 적용시키면 빌드에러 없이 잘 적용되는 걸 확인할 수 있다 😌


처음에는 이 문제를 발견했던 라이브러리에서 문의를 했을 때
라이브러리 버전 업을 하라는 답변을 받아서 패캐지를 업그레이드를 하면서
yarn berry 와 yarn의 업데이트 명령어도 다른것을 알 수 있었다.

yarn berry
> yarn up // 명령어
yarn 
> yarn upgrade // 명령어

결국에는 라이브러리에 타입정의가 잘못되어있던것으로 확인되어서
수정요청 후에 버전 업 된 라이브러리를 1)패키지 업그레이드 방식으로 적용하였고,

후에 다른 라이브러리에서 발생한 타입에러는 2)위 방식대로 수정하여서 적용시켜보았다 !


reference

0개의 댓글