husky の代替として simple-git-hooks を使う

simple-git-hooks とは

github.com

結論

以下の通りにすれば自動で .git/hooks/pre-commit を作成してくれます。

1. インストールする

npm or yarnsimple-git-hooks をインストールします。

2. package.json に hooks のコマンドを記述する

以下のように書きます。

(省略)
  "simple-git-hooks": {
    "pre-commit": "npx fixpack"
  },
(省略)

3. 上記内容を適用する

package.json に書いた内容を適用するため、simple-git-hooks を実行します。すでに npm or yarn にてインストールされていますが、何も考えずに npx で実行するのが手っ取り早いと思います。

$ npx simple-git-hooks

4. 念のため .git/hooks 以下を確認する

「2.」の内容が適用されているかを確認して、OK ならば作業完了です。

補足

GitHub Actions ではチェックアウトしたディレクトリに .git/hooks が存在しないので、どこかで .git/hooksmkdir しておくといいでしょう*1$ yarn install をした際に下記のメッセージが表示されるからです。

[4/4] Building fresh packages...
$ simple-git-hooks
Error: , Was not able to set git hooks. Error: Error: ENOENT: no such file or directory, open 'undefined/hooks/pre-commit'

なお、Netlify にデプロイした際には同様のエラーが出てこれに対応するのは難しいとは思いますが、まあ気にしなくてもいいかと思います。

8:34:56 PM: [4/4] Building fresh packages...
8:34:57 PM: $ simple-git-hooks
8:34:57 PM: [ERROR], Was not able to set git hooks. Error: Error: ENOENT: no such file or directory, open '/opt/build/repo/.git/hooks/pre-commit'

*1:やらなくても通ります

Powered by はてなブログ