patch-package 사용하여 노드 모듈 수정하기

오픈소스 라이브러리를 사용하다보면, 불가피한 이유로 node_modules 속 라이브러리를 수정할 일이 발생할 수 있다.

이 경우, 매번 npm install을 할 때마다 수정해야하는 것은 물론이고 다른 사람과의 협업이 진행중이라면, 매번 라이브러리 수정 이슈에 대해서 설명하고 문서를 남겨야하는 번거로움이 있다.

이때 사용할 수 있는 라이브러리로 patch-package가 있다.

npm i patch-package

patch-package를 설치한 뒤 node_modules에서 라이브러리를 수정한다.

그리고 npx patch-package 해당_라이브러리_이름 으로 patch-package를 실행하면, patches 폴더가 생기고 내부에 라이브러리 이름과 버전을 이름으로 갖는 patch 파일이 생긴것을 확인할 수 있다.

npx patch-package 해당_라이브러리_이름

그리고 package.json의 postinstall을 다음과 같이 작성해준다.

    "postinstall": "patch-package"

이제 npm run postinstall을 실행하거나, npm i가 실행된 뒤에 자동으로 해당 라이브러리가 수정되는 것을 확인할 수 있을 것이다.

patch-package는 patches 폴더 내부의 파일을 바탕으로 라이브러리를 수정해주기 때문에, 협업을 하고 있다면 이 폴더도 함께 공유하도록 한다.

 

https://github.com/ds300/patch-package

 

GitHub - ds300/patch-package: Fix broken node modules instantly 🏃🏽‍♀️💨

Fix broken node modules instantly 🏃🏽‍♀️💨. Contribute to ds300/patch-package development by creating an account on GitHub.

github.com