본문 바로가기

카테고리 없음

npm patch-package 사용법

728x90

각국의 개발자들이 만들어 놓은 npm 라이브러리들을 이것저것 사용하다보면 내 입맛에 맞게 패키지를 바꿔야 할 경우가 생기거나, 또는 사용하고 있는 패키지의 주인이 잠적하는 경우가 있다. 

 

이럴 경우 어떻게든 빠르게 땜빵(?)을 해야하는 경우 내 node_modules 에 들어있는 라이브러리를 억지로라도 고쳐서 대응해야하는 경우가 곧잘 발생하곤 한다.

 

이럴때 patch-package 를 사용하면 좋다.

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

사용법은 위의 github을 참고하면 된다. 

 

매우 중요한 flow만 대략적으로 설명하자면

- 내가 고칠 라이브러리의 폴더, 파일에 직접 들어가서 라이브러리를 입맛에 맞게 고친 뒤에 npx patch-package {패키지 이름} 을 실행한다.

- 자동으로 고친 코드에 대한 파일이 생성되므로. 이를 나중에 다른 사람 또는 다른 머신에서 내가 받아도 yarn 또는 npm install 시에 패치된 내용이 자동으로 업데이트 되도록 만들어 주는 마법같은 유틸이다.

# 어떤 'some-package' 라는 이름의 라이브러리의 brokenFile.js 파일이 고장났을 경우
# vim 이나 VsCode 등의 코드 에디터로 파일을 고친 다음
vim node_modules/some-package/brokenFile.js

# 다음과 같이 npx patch-package {고칠패키지이름} 을 해주면
npx patch-package some-package

# 그러면 알아서 그 패키지를 고친것에 대응 하는 파일이 생성된다.
# 그럼 그 파일을 git 에 커밋해두면 나중에 yarn 이나 npm 으로 install 시에 알아서 파일을 받고
# 그 뒤에 내가 바꾼것처럼 patch 도 자동으로 해준다.
git add patches/some-package+3.14.15.patch
git commit -m "fix brokenFile.js in some-package"