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モジュールにバグがあって困った場合に、お試しください。

シェアする

  • このエントリーをはてなブックマークに追加