1
0

More than 3 years have passed since last update.

ESLintで特定のjsをignoreしてreviewdogでエラーになったら

Last updated at Posted at 2020-07-21

結論

ESLintのWarningを全て出力対象外として構わなければ、ESLint実行時に--quietオプションを付ける

reviewdogがエラーになる理由とその対処方法

ESLintでは、.eslintignoreに記述したファイルをチェック対象外にします。

.eslintignore
foo.js

この時、ESLintを実行するとfoo.jsに対して、以下のようなWarningが出力されます。

(下記フォーマットは、-f checkstyleを付けた場合。なお、わかりやすく改行とインデントを入れています)

<?xml version="1.0" encoding="utf-8"?>
<checkstyle version="4.3">
  <file name="/home/runner/work/foo.js">
    <error line="undefined" column="undefined" severity="warning" message="File ignored because of a matching ignore pattern. Use &quot;--no-ignore&quot; to override." source="" />
  </file>
</checkstyle>

File ignored because of a matching ignore pattern

ignoreしたからといって何も出力されないわけではなく、ignoreしたことを警告してくれているわけですね。

このESLintの出力内容ですが、通常、linecolumnには数値が入り、ソースコード中のチェックにかかった位置がわかります。

しかし、ignoreの場合は、どちらもundefinedとなります。

<error line="undefined" column="undefined" severity="warning" message="File ignored because of a matching ignore pattern. Use &quot;--no-ignore&quot; to override." source="" />

このESLintの出力をそのままreviewdogに入力すると、内容を解析できずにparse errorとなってしまいます。

reviewdog: parse error: strconv.ParseInt: parsing "undefined": invalid syntax

reviewdogは、lineの値を元にGitHubのPR上にコメントしてくれます。

ですのでlineの値がundefinedでは困ってしまうのだと思われます。

これを回避する手段として、ESLintのWarningをignore対象に限らず、全て出力対象外として良いということであれば、--quietオプションを付ける方法があります。

--quietオプションを付けるとESLintのWarinigレベルは出力されなくなり、結果reviewdogのparse errorは発生しなくなります。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0