やりたいこと
依存パッケージが増えたとかで、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 || :"
}
}
(とかyarn
をnpm i
にしたり)
フロー
hoskyのpostmerge
(git-hookのpost-merge
)を使って、git pull
が終わったときに処理が走るようにしています。HEAD@{1}
はreflog
で見た時の1つ前のアクション時の状態で、これによってpull
前と後で変更のあるファイル名を調べてます。
つまりはpull
後にpackage.json
に変更があればyarn
しています。
何か
error Could not open cafile: EISDIR: illegal operation on a directory, read
的なエラーが出てますが、今後治りそうなのと、特に問題も起きてなさ気なのであまり気にしなくてもいいんじゃないかと思います。
« 何か起きてたらすいません »