npm overrides

npm 8.3부터 overrides를 지원한다. (StackOverflow)

사용하고 있는 라이브러리가 의존하는 패키지를 덮어쓸 수 있는 기능이다. 자신이 관리하고 있는 라이브러리면, 해당 라이브러리에서 사용하는 의존성을 올릴 수 있는 권한이 있겠지만, 세상에는 그렇지 않은 경우가 종종 있다. 그런 경우에 유용하게 쓸 수 있는 기능이다.

image.png

나는 node 14 -> 18으로 업데이트 작업 중, iconv 2.3.5의 npm install 과정 중 node-gyp이 터졌다. 사용 중인 사내 라이브러리(위 스크린샷의 meta-info-fetcher)에서 의존하는 iconv를 3.0.1으로 업데이트 해봤고, npm install이 넘어가는 것을 확인할 수 있었다. (문제점을 찾아낸 뒤, 사내 라이브러리의 의존성을 업데이트하는 pr을 작성했다.)

다른 포맷을 사용해야하지만 yarn에서도 가능하다.