Problemas con eslint

Tengo un nuevo plugin que está fallando las pruebas 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
Opción inválida '--ext'. ¿Quizás quisiste decir '-c'?
Estás usando eslint.config.js, algunas banderas de línea de comandos ya no están disponibles. Por favor, consulta https://eslint.org/docs/latest/use/command-line-interface para más detalles.
error El comando falló con el código de salida 2.
info Visita https://yarnpkg.com/en/docs/cli/run para obtener documentación sobre este comando.
Error: El proceso se completó con el código de salida 2.

No veo --ext en mi árbol de fuentes, ¿así que tal vez está en @discourse/lint-configs/eslint")? No sé dónde encontrar eso.

No puedo ver qué estoy haciendo mal o por qué esto no está afectando a un montón de plugins. :person_shrugging:

He visto este error en mi propio plugin. Descubrí que se debía a que intenté actualizar el archivo de configuración de eslint de .eslintrc.cjs al último formato de configuración plana eslint.config.js a través de la migración de eslint. eslint.config.js no admite --ext (Command Line Interface Reference - ESLint - Pluggable JavaScript Linter), por lo que cambiar el archivo al .eslintrc.cjs anterior debería solucionarlo.

Hay algunas instrucciones adicionales sobre cómo configurar los archivos de lint en lint-configs/lint-configs at main · discourse/lint-configs · GitHub

Como contexto adicional, @discourse/lint-configs utiliza eslint 8.57.0, que por defecto no utiliza la nueva configuración plana Configuration Files - ESLint - Pluggable JavaScript Linter.

2 Me gusta

Eso es lo extraño. No veo ningún eslint.confi.js en mi sistema de archivos (si es que confío en locate, y ciertamente no en mi árbol de fuentes).

¿Lograste que funcionara?

Qué raro… Sí, pude hacer que el mío funcionara.

Revisa el package.json para ver si devDependencies tiene "eslint": "8.57.0", y no una versión 9.x.x.

Sí. :crying_cat_face: Acabo de notar que eslint y prettier se cambiaron en package.json. Juro que fue hace solo un minuto que lo cloné del esqueleto. :person_shrugging:

Ahora me está dando errores (legítimos) en github, pero no puedo hacer que eslint se ejecute localmente para poder arreglar las cosas.

1 me gusta

Jay,

haz:

yarn

luego

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

(obviamente actualiza “mi-plugin”)

ambos desde el directorio discourse

2 Me gusta

OMG. Acabo de conseguir arreglarlo de una manera que era completamente imposible de reproducir, así que esto me salva la vida. Y ahora lo he añadido a mi archivo mágico, así que esto podría funcionar la 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 Me gusta

Espera. ¿Estás diciendo que esto actualizará eslint a la versión correcta? ¿O ejecutará eslint? ¿O que si lo ejecuto de esa manera, será la versión correcta?