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?