Problemi con eslint

Ho un nuovo plugin che non supera i test di linting:

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
Invalid option '--ext' - perhaps you meant '-c'?
You're using eslint.config.js, some command line flags are no longer available. Please see https://eslint.org/docs/latest/use/command-line-interface for details.
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.

Non vedo --ext nel mio albero sorgente, quindi forse si trova in @discourse/lint-configs/eslint")? Non so dove trovarlo.

Non riesco a capire cosa sto sbagliando o come questo non stia influenzando un sacco di plugin. :person_shrugging:

Ho riscontrato questo errore sul mio plugin. Ho capito che era perchĂ© avevo provato ad aggiornare il file di configurazione eslint da .eslintrc.cjs al piĂč recente formato flat config eslint.config.js tramite la migrazione eslint. eslint.config.js non supporta --ext (Command Line Interface Reference - ESLint - Pluggable JavaScript Linter), quindi cambiare il file al piĂč vecchio .eslintrc.cjs dovrebbe risolvere il problema.

Ci sono alcune istruzioni aggiuntive su come impostare i file di linting su lint-configs/lint-configs at main · discourse/lint-configs · GitHub

Per un po’ di contesto aggiuntivo, @discourse/lint-configs utilizza eslint 8.57.0, che per impostazione predefinita non utilizza il nuovo formato flat config Configuration Files - ESLint - Pluggable JavaScript Linter.

2 Mi Piace

È questo che Ú cosÏ strano. Non vedo un eslint.confi.js da nessuna parte sul mio filesystem (se devo fidarmi di locate, e certamente non nel mio albero sorgente).

Sei riuscito a farlo funzionare?

Oh, che strano
 Sì, sono riuscito a farlo funzionare.\n\nControllerei il package.json per vedere se le devDependencies hanno \"eslint\": \"8.57.0\", e non una 9.x.x.

Sì. :crying_cat_face: Ho appena notato che eslint e prettier sono stati modificati in package.json. Giuro che l’ho clonato dallo scheletro solo un minuto fa. :person_shrugging:

Ora mi sta dando errori (legittimi) su github, ma non riesco a far funzionare eslint localmente per poterlo correggere.

1 Mi Piace

Jay,

fai:

yarn

poi

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

(ovviamente aggiorna “my plugin”)

entrambi dalla directory discourse

2 Mi Piace

OMG. Sono riuscito a risolvere il problema in un modo completamente irriproducibile, quindi questo mi salva la vita. E ora l’ho aggiunto al mio file magico, quindi potrebbe funzionare la prossima volta

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

Aspetta. Stai dicendo che questo aggiornerĂ  eslint alla versione corretta? O eseguirĂ  eslint? O che se lo eseguo in quel modo, sarĂ  la versione giusta?