ESLint v9にアップデートすると、reviewdogでエラーになった問題の対処方法

Today I Learned

発生した問題

ESLintの実行結果を、reviewdogを使ってPull Requestにコメントしている。
ESLint v9にアップデートしたところ、reviewdogがエラーを出力するようになった。

Run pnpm run eslint -f checkstyle | reviewdog -f=checkstyle -name="eslint" -reporter=github-pr-review -fail-on-error=true
The checkstyle formatter is no longer part of core ESLint. Install it manually with `npm install -D eslint-formatter-checkstyle`
reviewdog: EOF

発生した環境

  • GitHub Actionsの実行環境:Ubuntu 22.04.4
  • reviewdog/action-setup v1.3.0
  • reviewdog v0.18.1
  • ESLint v9.5.0

原因

reviewdogに与えるESLintの出力フォーマットには、「checkstyle」を採用していた。
ところがESLint v9からは、デフォルトの出力フォーマットから「checkstyle」が削除されていた。

A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. Maintain your code quality with ease.

解決策

エラーメッセージに従い、eslint-formatter-checkstyleをインストールする。

pnpm install -D eslint-formatter-checkstyle

参考ワークフロー

.github/workflows/eslint.yml
name: eslint

on:
  pull_request:

permissions:
  contents: read
  pull-requests: write

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  eslint:
    runs-on: ubuntu-latest
    timeout-minutes: 5
    steps:
      - uses: actions/checkout@v4

      - uses: reviewdog/action-setup@v1
        with:
          reviewdog_version: latest

      - uses: pnpm/action-setup@v4
        with:
          version: 8

      - uses: actions/setup-node@v4
        with:
          node-version-file: ./.node-version
          cache: "pnpm"

      - name: Install dependencies
        run: pnpm install --shamefully-hoist --frozen-lockfile
        env:
          CI: true

      - name: Run eslint
        run: |
          pnpm run eslint -f checkstyle | reviewdog -f=checkstyle -name="eslint" -reporter=github-pr-review -fail-on-error=true
        env:
          REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}