corepack 은 패키지 매니저(yarn, pnpm) 관리를 쉽게 도와주는 도구이다.
보통 node, ruby 처럼 여러 버전을 스위칭해서 써야하는 경우가 많을때 nvm, rbenv 와 같은 도구들로 버전을 변경해가면서 사용한다.
일반적으로 패키지 매니저의 경우에는, 프로젝트 내에서 버전 혹은 패키지 매니저의 바이너리 경로를 명시하기 위해 .yarnrc
, .npmrc
등의 config 파일로 관리하기는 하지만, yvm 같은 도구를 사용해서도 프로젝트에 맞는 패키지 매니저의 버전으로 변경을 할 수 있는것이다.
(yarn 같은 경우 v1 과 berry(v3) 간의 갭이 굉장히 크다.)
그렇다면 corepack 은 무엇을 하는걸까?
바로 Node.js 가 패키지 매니저를 다운로드, 설치, 버전에 맞는 바이너리를 알아서 제공 해준다.
우리는 corepack 을 활성화 하고 package.json
의 packageManager
필드에, 지원되는 패키지 매니저의 바이너리 이름과 버전만 넣어주면 된다.
{
"packageManager": "yarn@1.22.19"
}
그러면 corepack 이 알아서 packageManager
필드를 읽고, 알맞은 패키지 매니저를 실행 가능하게 도와준다.