• トップ
  • ブログ一覧
  • 【npm】最終手段で使えるpatch-package
  • 【npm】最終手段で使えるpatch-package

    開発している上でパッケージ側に問題があり
    それのアップデートなどでも修正できず諸々の事情で代替のパッケージも利用できない場合
    最終手段としてパッケージ側のファイルを修正する必要が出てくる時があります

    今回はそんな時に便利なpatch-packageを紹介します!

    概要

    基本的にパッケージのgit管理はnode_modulesフォルダをgitignoreに設定するため
    パッケージの変更は他の開発者と共有できません

    そこでgitignoreを変更せず簡単に共有できるようにできるようになるのがpatch-packageです

    導入

    導入は簡単で以下のようにpackage.jsonのscripts内に追加します
    スクリプト名が独特ですがここを変えると失敗するので注意しましょう

    1 "scripts": {
    2  "postinstall": "patch-package"
    3 }

    あとはpatch-packageのインストールを行うだけです

    1npm i patch-package

    パッケージを修正する

    通常と同じくnode_modulesフォルダ内にあるパッケージのファイルを直接修正します
    その後にpatch-packageのコマンドを実行します

    1npx patch-package [修正したパッケージ名]

    成功するとpatchesフォルダが生成され
    その下にパッケージ名+バージョン.patchファイルが作成されます
    これをリモートにプッシュすることで他の開発者はnpm installだけでパッケージの修正を反映することができます!

    パッケージの修正を元に戻す

    patchesフォルダ下にある対象のpatchファイルを削除して、再度npm installすればOKです

    まとめ

    簡単な導入でパッケージ修正の共有を行うことができるのですごい便利なのですが
    パッケージ修正する内容については該当パッケージのissueなど吟味した上で対応したいですね!

    ライトコードでは、エンジニアを積極採用中!

    ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。

    採用情報へ

    おすすめ記事

    エンジニア大募集中!

    ライトコードでは、エンジニアを積極採用中です。

    特に、WEBエンジニアとモバイルエンジニアは是非ご応募お待ちしております!

    また、フリーランスエンジニア様も大募集中です。

    background