patch-packageでnpmにパッチあてる。しかも簡単に

React Nativeのアプリにとあるライブラリを入れたところビルドが失敗するようになってしまった。

実はこのライブラリってのがもうあまり活発に動いていないライブラリなんだけれど、同様の機能を持つ有償パッケージを入れるか、自前で作るかみたいな事情なのでひとまずこれを入れて対応するかってなったんだけどAndroidだけビルドが失敗するようになってしまった。

失敗する理由はとあるdeprecatedなgradleのプロパティが設定されていたため。対応としてはその一行を削除するだけなんだけど、PRするにしても取り込まれるのいつになるかわからないし、forkするのもなってことでパッチをあてることにした。

ただ、node_modules配下にインストールされているものを手動で変更するのは入れ直しのたびにやらなければいけなくなるし、他の人にも共有しないといけなくなる。

というわけでpatch-packageというライブラリである。npmにはpostinstallで任意の処理を実行できる仕組みがあるんだけどそこでパッチを当ててくれるようになるっていうもの。さらにパッチファイルの生成も行ってくれるのである。つまり、このパッチファイルもGitに入れておけば全員が意識せずにパッチがあたるというわけ。

github.com

やることは簡単。

まずはインストール。yarnを使ってる場合はpostinstall-post-installも入れる必要がある。

yarn add -D patch-package postinstall-postinstall

package.jsonに以下を追加する。もちろんscriptsの既存のものに加えて、だ。

 "scripts": {
    "postinstall": "patch-package"
  },

そうしたらnode_modules以下にある修正したいファイルを直接修正する。

最後に以下のコマンドを実行する。

yarn patch-package パッケージ名

npmを使っている場合はnpx patch-package パッケージ名だ。

実行したらpatchesフォルダが作成され、中には対象のパッケージ名を含むファイル名でパッチファイルが作成されている。あとはこれをGitにコミットしてプッシュするだけである。

本当はパッチでの運用はよくないけどまあこういうのもあるよってことで。

以上

©Keisuke Nishitani, 2020   プライバシーポリシー