패키지를 설치하다보면 내가 직접 설치하지 않은 패키지에서 deprecated 등의 에러나 경고를 발생시킬 때가 있다. 이는 다른 패키지의 의존성 때문에 설치된(sub-dependency) 패키지인데 yarn upgrade로는 이 문제가 해결되지 않았다.
이 때 사용할 수 있는 방법이 Selective dependency resolutions이다. package.json에 해결하고자 하는 패키지와 버전을 작성하면 된다. 이후 yarn install 명령어을 실행해준다.
// package.json
{
"name": "project",
"version": "1.0.0",
"dependencies": {
"left-pad": "1.0.0",
"c": "file:../c-1",
"d2": "file:../d2-1"
},
"resolutions": {
"d2/left-pad": "1.1.1",
"c/**/left-pad": "^1.1.2"
}
}
이러면 resolutions에 작성한 버전대로 sub-dependency 패키지가 설치된다.