Rubocop
Rubocopを使う機会があったので、備忘録。
rubocopを導入する
Gemfile
group :development do
gem 'rubocop', require: false
gem 'rubocop-performance'
gem 'rubocop-rails'
end
に追記をして
ターミナル
bundile install
.rubocop.ymlを設定
1か2のどちらかで。
-
touch .rubocop.yml
でファイルを作成し、https://github.com/rails/rails/blob/main/.rubocop.yml からファイルをコピーする。 -
rubocop --auto-gen-config
を実行する。
自動修正
bundle exec rubocop --auto-correct
rubocop_airbnbを設定する。
Gemfile
group :development do
gem 'rubocop-airbnb'
touch .rubocop_airbnb.yml
で.rubocop_airbnb.yml を作成し、
.rubocop_airbnb.yml
require:
- rubocop-airbnb
.rubocop.yml
inherit_from:
- .rubocop_airbnb.yml
でbundle install
ターミナル
rubocop --require rubocop-airbnb
で実行だけど。
競合した!!
ターミナル
Bundler could not find compatible versions for gem "rubocop":
potepanec_1 | In snapshot (Gemfile.lock):
potepanec_1 | rubocop (= 1.13.0)
potepanec_1 |
potepanec_1 | In Gemfile:
potepanec_1 | rubocop-airbnb was resolved to 1.0.0, which depends on
potepanec_1 | rubocop (= 0.52.1)
potepanec_1 |
potepanec_1 | rubocop-packaging was resolved to 0.5.1, which depends on
potepanec_1 | rubocop (< 2.0, >= 0.89)
rubocop-packageingとrubocop-airbnbで使うrubocopのバージョンが違うらしい。
今回はrubocop-airbnbを使いたいから、競合しないようにコメントアウトしました。
Gemfile
group :development do
gem 'rubocop', require: false
# gem 'rubocop-performance'
# gem 'rubocop-rails'
end
.rubocop.ymlファイルに設定する
rubocopの設定を行う。
.rubocop.yml
inherit_from:
- .rubocop_airbnb.yml
#以下にはrubocopで検証したくないフォルダを指定する
AllCops:
Exclude:
- 'db/**/*'
- 'bin/*'
- 'config/**/*'
- 'lib/**/*'
- 'vendor/**/*'
# 文字制限の解除
Metrics/LineLength:
Enabled: false
rubocop-airbnbを実行
実行コマンド
ターミナル
bundle exec rubocop --require rubocop-airbnb
bundle exec rubocop --require rubocop-airbnb -a #自動修正
参考資料
rubocop
Rubocopをインストールして、Rails本家の設定を使う方法
Railsの品質を上げるRuboCopとは?インストールや使い方を紹介!
Rubocopを使ってRailsコードをチェックしてみる
Rubocopチートシート
rubocop-airbnb
rubocop−airbnbを使うにあたって
Author And Source
この問題について(Rubocop), 我々は、より多くの情報をここで見つけました https://qiita.com/tuk19/items/c924be7c27487384ab22著者帰属:元の著者の情報は、元の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 .