【Ruby】コミットする前に husky+lint-staged で、Rubocopの自動整形&チェックを行う
この記事なに?
上記記事を参考にhusky
+lint-staged
を用いて、コミット前にeslintによるチェックを行う実装が行えました。
その仕組みを使って、Rubocopの自動整形&チェックを行う環境を構築できましたので、その手順メモになります。
この記事を一読してくださった方へ
- 「こんなのも書き留めておいた方が良いよ」
- 「それ、解釈間違ってるよ」
的なものがあればコメント等いただけると助かります。🙇♂️
rubocopのオプション変更 2019.08.05追記
分報仲間のaquiさんから、フィードバックをいただけました!
こちらの記事を参考に、近々記事をアップデートさせていただきたいと思います。
環境
- macOS
-
Homebrewでインストールした
git
とyarn
を用いる
手順
git
とyarn
を用いる実際に設定した手順を記載していきます。
準備
必要なGemとnpmパッケージのインストールをします。
# Rubocopのインストール(or Gemfileへrubocopを追記して、bundle installする)
gem install rubocop
# npmパッケージのインストール
yarn add -D lint-staged husky
package.json
の設定
rb,rakeファイルを対象にRubocopによる自動整形とチェックを行うコマンドを記載します。
{
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"linters": {
"*.{rb,rake}": [
"rubocop -a",
"rubocop",
"git add"
]
}
}
}
bundle install
したRubocopを使用したい場合は、以下コマンドを記載する方が良いかなと思います。(未検証ですが、おそらく問題なく動作するかと思います。)
bundle exec rubocop -a
bundle exec rubocop
これで、設定完了となります。
注意事項
チーム開発等で本設定を使用されたい場合、必ず最初にyarn
して、npmパッケージをインストールするようにしてください。
※npmパッケージをインストールしておかないと、lint-staged
とhusky
が動作しないので、注意が必要です。
おわり
CircleCI側で、Rubocopの自動整形をおこなったPRを出してくれるGemもあるみたいです。
自動整形をコミットに含めない運用としたい場合は、上記を活用した方がよさそうです。
Author And Source
この問題について(【Ruby】コミットする前に husky+lint-staged で、Rubocopの自動整形&チェックを行う), 我々は、より多くの情報をここで見つけました https://qiita.com/zaki_zaki/items/847462d18f0f37e74c8e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .