🍉
【Rails7】rubocopとlintチェックの導入についてまとめました。
はじめに
もなかと申します。
プログラミング初心者でRuby on Railsをメインに勉強しています。
今回はアプリ開発時のrubocopとerb-lintの導入時につまづくことがありました。参考記事通りにいかない部分があったので、後から自分でも確認ができるようにまとめることにしました。
内容につきまして、間違いや不備がありましたらコメントで教えてください。
参考資料
開発環境
Ruby 3.2.2
Rails 7.0.8
rubocopの導入
gem 'rubocop'
gem 'rubocop-ast'
gem 'rubocop-performance'
gem 'rubocop-rails'
gem 'rubocop-rake'
gem 'rubocop-rspec'
bundle install
その後、.rubocop.yml
を作成。
.rubocop.yml
inherit_from: .rubocop_todo.yml
Style/AsciiComments:
Enabled: false
Style/Documentation:
Enabled: false
AllCops:
TargetRubyVersion: 3.1
NewCops: enable
Rails/BulkChangeTable:
Enabled: false
require:
- rubocop-ast
- rubocop-rails
- rubocop-rake
- rubocop-rspec
- rubocop-performance
Rails/BulkChangeTable:
の部分は参考記事には書かれていませんでした。しかし、RuboCopにおけるルールではマイグレーションファイルを検査している際にエラーが起きていたため、問題の箇所を無効化しました。
.rubocop_todo.yml
ファイルを空のまま作成。
.rubocop_todo.yml
rubocopの実施。-a
をつけることで自動修正。
bundle exec rubocop -a
rubocopと連動したerb-lintを導入。
gem 'erb_lint'
bundle install
.erb-lint.yml
ファイルの作成。
rubocopも適用されるようにするために下記のコードを加えます。
.erb-lint.yml
exclude:
- '**/vendor/**/*'
- '**/node_modules/**/*'
EnableDefaultLinters: true
linters:
Rubocop:
enabled: true
rubocop_config:
inherit_from:
- .rubocop.yml
Style/FrozenStringLiteralComment:
Enabled: false
Layout/InitialIndentation:
Enabled: false
Layout/TrailingEmptyLines:
Enabled: false
ERBファイルの自動修正。
erblint --lint-all -a
最後に
最後まで読んでいただき、ありがとうございました。
参考記事のようにGithub Actionsに反映させることもできました。実装方法は参考記事を参照してください。
Discussion