eslintで問題発生

新しいプラグインでリンターテストが失敗しています。

Run if test -f .prettierrc.cjs; then
yarn run v1.22.22
$ /home/runner/work/discourse-multi-rating/discourse-multi-rating/node_modules/.bin/eslint --ext .js,.gjs,.js.es6 --no-error-on-unmatched-pattern test/javascripts assets/javascripts admin/assets/javascripts
無効なオプション '--ext' です。'-c' の間違いではありませんか?
eslint.config.js を使用しています。一部のコマンドラインフラグは利用できなくなりました。詳細については https://eslint.org/docs/latest/use/command-line-interface を参照してください。
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Error: Process completed with exit code 2.

ソースツリーに --ext が見当たらないのですが、もしかしたら @discourse/lint-configs/eslint") に含まれているのでしょうか?どこにあるのか分かりません。

何が間違っているのか、なぜこれが多くのプラグインに影響しないのか分かりません。 :person_shrugging:

自分のプラグインでもこのエラーを確認しました。これは、eslint 設定ファイルを .eslintrc.cjs から最新のフラット設定形式 eslint.config.js に eslint の移行を通じて更新しようとしたことが原因だと判明しました。eslint.config.js--ext (Command Line Interface Reference - ESLint - Pluggable JavaScript Linter) をサポートしていないため、ファイルを古い .eslintrc.cjs に変更すると修正されるはずです。

Lint ファイルの設定方法については、lint-configs/lint-configs at main · discourse/lint-configs · GitHub に追加の説明があります。

追加のコンテキストとして、@discourse/lint-configs は eslint 8.57.0 を使用しており、デフォルトでは新しいフラット設定 (Configuration Files - ESLint - Pluggable JavaScript Linter) を利用しません。

「いいね!」 2

それが奇妙なところです。私のファイルシステムには eslint.config.js はどこにも見当たりません(locate を信頼するなら、そしてもちろんソースツリーにもありません)。

うまくいきましたか?

それは奇妙ですね…はい、私のものは機能させることができました。

package.json を確認して、devDependencies\"eslint\": \"8.57.0\", があり、9.x.xではないことを確認してください。

はい。:crying_cat_face: package.jsonでeslintとprettierが変更されたことに気づきました。ほんの少し前にスケルトンからクローンしたばかりだったのに。:person_shrugging:

これでgithubで(正規の)エラーが発生していますが、修正できるようにeslintをローカルで実行できません。

「いいね!」 1

ジェイ、

実行してください:

yarn

次に

yarn eslint --fix plugins/<my-plugin>

(「my-plugin」は適宜更新してください)

どちらも discourse ディレクトリから

「いいね!」 2

OMG。なんとか再現不可能な方法で修正できたので、これは救世主です。そして、これを私のマジックファイルに追加したので、次回は機能するかもしれません。

if [[ "$ARG" == 'fix-eslint' ]]
then
  cd ~/src/discourse-repos/discourse
  yarn
  for x in ~/plugins/*
  do
    yarn eslint --fix x
  done
fi
「いいね!」 2

待ってください。これは eslint を適切なバージョンに更新することを意味しますか?それとも eslint を実行することですか?それとも、そのように実行すると正しいバージョンになるということですか?