細かすぎて伝わらないESLintのTIPS
ここ2日ほど、ESLintを使っていて気づいた細かい設定など。
デフォルトの結果だとVimで該当行までジャンプできないのをどうにかしたい
問題
デフォルトの出力が
/private/tmp/hoge/a.js 2:13 error "require" is not defined no-undef
というフォーマットなので、普段
eslint . | view -
みたいな感じでVimで表示させて、gF
で該当行にジャンプとかをしているのができません(a.js:2
みたいな形式でないと開けない)
解決策
-f
,--format
オプションを利用する。
-f unix
を指定すると
/private/tmp/hoge/a.js:2:13: "require" is not defined. [Error/no-undef]
みたいになります。
他に指定できるフォーマットはコチラ↓
http://eslint.org/docs/user-guide/command-line-interface#f-format
warningは表示したくない!
問題
レガシーコードにESLintをかけたところ、errorが大量に表示されたので、とりあえずルールを1個1個error→warningに変更していきました・・・ ががが、warningのメッセージが邪魔すぎる。
解決策
--quiet
オプションを使う。
warningが出なくなり、errorのメッセージだけ出力されるようになります。
↓公式。
http://eslint.org/docs/user-guide/command-line-interface#quiet
.eslintrc
を編集したら挙動が変だ
問題
チェックされるべきルールのチェックが効いていない。
解決策
.eslintrc
をYAMLで書いてないですか?
とりあえず、YAMLのLinterに書けてみましょう。
npm i -g js-yaml # Syntastic.vimでチェックが効くようになります
結構、YAMLの編集ミスが鬼門で、
comma-spacing': [1, {'before': false, 'after': true}],
みたいにJSON形式の.eslintrc
からコピペして消し忘れとかをするとそのルール以下動かなくなったりします。
'
とか,
とか要注意。
デカい.eslintrc
ファイルを書くときは実はJSON形式の方がいいんじゃと思ったり(ESLintの場合、JSON形式でもコメントも書けます!)