ReactNative에서 여러 npm package들을 사용하다보면 라이브러리간의 충돌이나 유지보수가 되지 않는등의 이슈로 인하여 라이브러리를 사용하지 못하는경우가 많이 발생한다.
라이브러리 간의 충돌 문제, 3rd party 라이브러리가 업데이트가 되지 않아 에러가 발생하는등의 상황등이 많이 발생하는데, 이 문제를 해결하기 위한 방법은 여러가지가 있을 수 있다.
첫째, 해당 라이브러리를 fork한 뒤, 내 것으로 만들어 해결하는 방법이다. fork를 하게되면 추후에 CI/CD를 구축하는데 있어서 repo에 대한 권한을 별도로 발급받아야하는등의 작업들이 추가로 생기게 된다.
두번째, patch-package를 활용하는 방법이 있다.
npm install 이후에 스크립트를 사용하여 버전을 비교한뒤에 지정한 패치내용이 저장되는 것이다.
기존의 package내용에서 내가 지정한 내용으로 바꿔준다. fork를 따로 하지 않고도 사용할 수 있다는 장점이 있다.
yarn add patch-package
로 설치를 해주고,
package.json의 scripts에 "postinstall": "patch-package"를 추가해주면 npm install이 진행되고, 이후에 pach-package가 실행되게 된다.
npx patch-package "package명"을 입력하면, patches폴더에 pactch된 파일이 생성되고,
이후 npm install을하면 install된 후, patch 파일을 적용해 준다.
이렇듯 native 라이브러리가 잘못된 경우에 혹은 수정이 필요한 경우에 patch-package로 문제를 해결할 수 있다.