YAMLのlinter
YAMLのlinterを導入した時のメモ
経緯
エンジニアではないがGithubは使えるというメンバーがいる
彼がRailsのen.ymlを更新する
たまに文法ミスが起きるのをakix.iconが目grepで修正してた
少ししか変更がなければそれで良いが、まったくスケールしないのでYAMLのlinterを導入しようと決めた
RSpecで検出できる文法ミスは、全然関係無い場所でI18n::InvalidLocaleDataが出て話にならない
code:エラー例その1.txt
I18n::InvalidLocaleData:
can not load translations from ~/my-rails/config/locales/ja.yml: #<Psych::SyntaxError: (~/my-rails/config/locales/ja.yml): did not find expected key while parsing a block mapping at line 3 column 3> ↑3行目でエラーが起きてるっぽいけど、実際は1,200行目とかだったりする
候補
RSpecと同じエラー出力で終わるので今回は×
RSpecと同じエラー出力で終わるので今回は×
関係ある場所でエラーが出る!!!!最高!!!!
rasshofer/yaml-lintの出力例
code:エラー例その2.txt
$ yarn run yamllint ./config/locales/*.yml
yarn run v1.6.0
$ ~/my-rails/node_modules/.bin/yamllint ./config/locales/en.yml ./config/locales/ja.yml
✖ YAML Lint failed for ~/my-rails/config/locales/ja.yml
✖ can not read a block mapping entry; a multiline key may not be an implicit key at line 1427, column 7:
edit: 編集
^
error Command failed with exit code 1.
↑1427行目のedit: 編集でエラーが起きてるのが分かる
↓実際のファイルはこんな感じ
code: 実装.yml
# (前略)
back: 戻る
invalid_value: 'I don't know.'
edit: 編集
エラー例その1と比べると圧倒的に分かりやすい!