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行目とかだったりする
候補
gem https://github.com/shortdudey123/yamllint
RSpecと同じエラー出力で終わるので今回は×
gem https://github.com/Pryz/yaml-lint
RSpecと同じエラー出力で終わるので今回は×
npm https://github.com/rasshofer/yaml-lint
関係ある場所でエラーが出る!!!!最高!!!!
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.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
↑1427行目のedit: 編集でエラーが起きてるのが分かる
↓実際のファイルはこんな感じ
code: 実装.yml
# (前略)
back: 戻る
invalid_value: 'I don't know.'
edit: 編集
エラー例その1と比べると圧倒的に分かりやすい!