ERB Lintについて

FBCRailsのプラクティスにERB Lintの導入が必須になったので概要を調べてみました。

結論

ERB LintとはrubocopではチェックできないERBファイルのスタイルをチェックしてくれるツール。

Shopify/erb-lint: Lint your ERB or HTML files

インストール

Gemfile に追記してインストールする。

# Gemfile
...
group :development do
  gem 'erb_lint', require: false
  ...
end
...
$ bundle install

セットアップ

プロジェクトのルートに下記のような設定ファイル.erb-lint.yml を追加。

$ cd project_root
$ touch .erb-lint.yml

作成した.erb-lint.yml に下記を追記。

---
glob: "**/*.{html,text,js}{+*,}.erb"
exclude:
  - '**/vendor/**/*'
  - '**/node_modules/**/*'
linters:
  # 自動生成したERBファイルの閉じタグを検証から除外する
  SelfClosingTag:
    enabled: false
  • glob: ERB Lintを実行するファイルの指定
  • exclude: ERB Lintを実行しないファイルの指定
  • linters: ERB Lintを実行する際のルール設定

FBCでは自動生成したerbは規則に従っていないことが多いという理由から、自動生成したERBファイルの閉じタグは検証対象から除外することが推奨されていました。 SelfClosingTagfalse にすることで除外できるようです。

Shopify/erb-lint: Lint your ERB or HTML files

実行コマンド

ERB Lint で良く使うコマンドです。

# glob にマッチした全ファイルにERB Lint を実行
$ bundle exec erblint --lint-all

# glob にマッチした全ファイルにERB Lint を実行し、自動修正も行う
$ bundle exec erblint --lint-all -a

今後やりたいこと

rubocopと連動させることもできるようなので使い方に慣れてきたらやってみようと思います。

RuboCopとERB LintをRailsに導入する

まとめ

ERB Lintについて最低限の事は理解することができたので、あとはガシガシ使って使い方を覚えていこうと思います!

参照

RailsのプラクティスでERB Lintの実行を必須要件に追加しました | FBC

Shopify/erb-lint: Lint your ERB or HTML files

RuboCopとERB LintをRailsに導入する