All posts
npmパッケージを修正する方法

現在、Headless CMS を使ったサービスを制作しているのですが、その中で使用するnpmパッケージにバグが見つかりました。そのモジュールのGithubを確認してみたところ、まさにこのバグの issueが上がっていましたが、 ややマイナーなモジュールのためか、放置されているようです。
1か所「new」が抜けてるだけですので、npm install した後に、ちょっと修正すれば済むのですが、これをいちいち覚えておいて運用するのはちょっとつらい。
今回のように、放置気味のモジュールの修正には、「patch-package」を使うと便利です。
使い方はとても簡単で、まず「patch-package」をインストールします。
npm install patch-package --save-dev次に、「packege.json」にスクリプトを追加します。
{
...
scripts: {
...
"postinstall": "patch-package"
}
}これで、npm insatll 後にパッチが自動的に当てられるようになります。
次に、node_modulesの中のファイルを修正します。
修正したら、以下のコマンドを叩きます。
npx patch-package << 修正したモジュール名 >>すると、npmのサーバ上のファイルと、修正後のファイル違いが自動的にチェックされて、「 patches 」フォルダの中にパッチファイルが生成されます。
つまり、このパッチファイルと「patch-package」モジュールをプロジェクトに追加して、スクリプトを1行追加しておけば、自動的にmoduleの修正が行われるようになります。
例えば、Dockerイメージのビルドで npm insatall する場合にも、安心して使うことができます。(まさに今回がそう)
npmモジュールにバグがあって困った場合に、お試しください。




Discussion