Problemas com o eslint

Tenho um novo plugin que está falhando nos testes de lint:

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
Opção inválida '--ext' - talvez você quisesse dizer '-c'?
Você está usando eslint.config.js, algumas flags de linha de comando não estão mais disponíveis. Por favor, veja https://eslint.org/docs/latest/use/command-line-interface para detalhes.
error Comando falhou com código de saída 2.
info Visite https://yarnpkg.com/en/docs/cli/run para documentação sobre este comando.
Error: Processo concluído com código de saída 2.

Não vejo --ext na minha árvore de origem, então talvez esteja em @discourse/lint-configs/eslint")? Não sei onde encontrar isso.

Não consigo ver o que estou fazendo de errado ou como isso não está afetando um monte de plugins. :person_shrugging:

Encontrei este erro no meu próprio plugin. Descobri que foi porque tentei atualizar o arquivo de configuração do eslint de .eslintrc.cjs para o formato de configuração plana mais recente eslint.config.js através da migração do eslint. eslint.config.js não suporta o --ext (Command Line Interface Reference - ESLint - Pluggable JavaScript Linter), então mudar o arquivo para o .eslintrc.cjs mais antigo deve corrigir isso.

Existem algumas instruções adicionais sobre como configurar os arquivos de lint em lint-configs/lint-configs at main · discourse/lint-configs · GitHub

Para um contexto adicional, @discourse/lint-configs usa o eslint 8.57.0, que por padrão não utiliza a nova configuração plana Configuration Files - ESLint - Pluggable JavaScript Linter.

2 curtidas

É isso que é tão estranho. Não vejo um eslint.confi.js em nenhum lugar no meu sistema de arquivos (se eu puder confiar no locate, e certamente não na minha árvore de origem).

Você conseguiu fazer funcionar?

Que estranho… Sim, consegui fazer o meu funcionar.

Verifique o package.json para ver se o devDependencies tem \"eslint\": \"8.57.0\", e não uma versão 9.x.x.

Sim. :crying_cat_face: Acabei de notar que eslint e prettier foram alterados no package.json. Juro que foi há apenas um minuto que o clonei do esqueleto. :person_shrugging:

Agora ele está me dando erros (legítimos) no github, mas não consigo fazer o eslint rodar localmente para poder corrigi-lo.

1 curtida

Jay,

faça:

yarn

depois

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

(obviamente atualize “meu-plugin”)

ambos do diretório discourse

2 curtidas

OMG. Eu consegui consertar de uma forma que era completamente impossível de reproduzir, então isso é uma salvação. E agora eu adicionei ao meu arquivo mágico, então isso pode funcionar da próxima vez

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

Espere. Você está dizendo que isso atualizará o eslint para a versão correta? Ou executará o eslint? Ou que se eu executá-lo dessa maneira, será a versão certa?