LoginSignup
14
10

More than 5 years have passed since last update.

`git pull` とかした時に package.json に変更があれば自動で `yarn` や `npm i` も走るようにする

Last updated at Posted at 2017-11-05

やりたいこと

依存パッケージが増えたとかで、package.jsonに変更があった時にフロント同士ならともかく、それ以外の場合は何も言わなくても自動でyarnとか走らせて更新させたい。

使うもの

husky🐶。git-hooks(参考 Git hooks まとめ)をpacakge.jsonのscriptsから使えるようにしてくれます。

結果

こんな感じのものを追加。

package.json
{
  "devDependencies": {
    "husky": "^0.14.3"
  },
  "scripts": {
    "postmerge": "(git diff 'HEAD@{1}' --name-only | grep package.json > /dev/null) && yarn || :"
  }
}

(とかyarnnpm iにしたり)

フロー

hoskyのpostmerge(git-hookのpost-merge)を使って、git pullが終わったときに処理が走るようにしています。HEAD@{1}reflogで見た時の1つ前のアクション時の状態で、これによってpull前と後で変更のあるファイル名を調べてます。

つまりはpull後にpackage.jsonに変更があればyarnしています。

Kapture 2017-11-06 at 0.40.49.gif

何かerror Could not open cafile: EISDIR: illegal operation on a directory, read的なエラーが出てますが、今後治りそうなのと、特に問題も起きてなさ気なのであまり気にしなくてもいいんじゃないかと思います。
« 何か起きてたらすいません »

14
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
10