Gitでcommitする前にソースコードを自動で修正する方法
gatsbyjsフレームワークでpluginとしてpreactという、reactの軽量化Versionを入れているのだが、何故かこれがdevelopment buildでは動かず、productionでは動くという問題が生じている。なのでdevelopment時は
plugins: [
// `gatsby-plugin-preact`, // enable this for production
{
resolve: `gatsby-plugin-manifest`,
とpluginをコメントアウトしているのだが、コミットする時に間違えたままコミットするのを防ぎたいというのが目的である。
huskyを導入
このコミットタイミングで特定のコードを実行するnpm libraryがhuskyである。今回はこれを使う。
まず公式ドキュメントに従い、推奨されているnpxのコマンドをたたく
$ npx husky-init && npm install
Need to install the following packages:
husky-init
Ok to proceed? (y) y
husky-init updating package.json
setting prepare script to command "husky install"
husky - Git hooks installed
husky - created .husky/pre-commit
please review changes in package.json
> gatsby-starter-hello-world@0.1.0 prepare
> husky install
husky - Git hooks installed
するとcommit時に走るファイルが.husky/pre-commit
以下に生成される。
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npm test
次に、npm testとdefaultで書かれている部分を変更する。
$ sed -i -e "s/\/\/ \`gatsby-plugin-preact\`/\`gatsby-plugin-preact\`/" gatsby-config.js
$ git add gatsby-config.js
sedでconfigファイルの置換を行なっているが、置換した部分を再度addする必要がある。ただ難点としては、gatsby-configの他の個所を修正していたとしてもaddされてしまうというところ。まあ自分の運用上問題にはならなそうなので良いか。
関連記事
javascriptとjquery、cssを使用してトップへ戻るボタンを作成。考え方も含めて説明していきます。
2020年03月23日
Googleスプレッドシートとスクリプト言語Google App Script(GAS)を使用して青色申告含む確定申告を行ったのでまとめ
2020年03月28日
2020年07月12日
2020年11月20日
2021年01月17日
reduxで理解すべきimmutable objectの概念を深めていく。
2021年01月19日
2021年02月10日
2021年03月21日
2021年04月08日