Estoy viendo una diferencia significativa en la configuración de linting predeterminada y en cómo se supone que funciona.
La configuración predeterminada instala el paquete eslint-config-discourse como una dependencia de desarrollo:
https://www.npmjs.com/package/eslint-config-discourse
Sin embargo, cuando busco el código fuente en https://github.com/discourse/eslint-config-discourse, el repositorio se redirige a @discourse/lint-configs, que también es un paquete dentro del monorepo de eslint-config-discourse. Con las pruebas incluidas, eslint-config-discourse se supone que es un envoltorio, creo, pero no está funcionando como se supone que debe ser, al menos no en mi experiencia:
Configuración de Linting Predeterminada
- Crea un nuevo tema usando el comando
discourse_theme new. - Revisa la configuración de linting generada:
a..eslintrc
b.{ "extends": "eslint-config-discourse", "globals": { "settings": "readonly", "themePrefix": "readonly" } }.template-lintrc.js:
c.module.exports = { plugins: ["ember-template-lint-plugin-discourse"], extends: "discourse:recommended", };package.json{ "license": "MIT", "devDependencies": { "eslint-config-discourse": "latest" } } - Ejecuta Prettier en el paquete y se quejará de los archivos
*.gjs:yarn prettier --check --write "{common,javascripts,desktop,mobile,test,scss}/**/*.{js,gjs,es6,scss}"Error: No parser could be inferred for file ... .gjs
Configura @discourse/lint-configs directamente
https://www.npmjs.com/package/@discourse/lint-configs
- Ejecuta
yarn remove -D eslint-config-discoursepara desinstalar el paquete. - Ejecuta
yarn add -D @discourse/lint-configspara instalar como dependencia de desarrollo. - Sigue las instrucciones para crear los archivos de configuración de linting:
a. Reemplaza el archivo.eslintrccon.eslintrc.cjs
b. Agrega el archivomodule.exports = require("@discourse/lint-configs/eslint-theme");.prettierrc.cjs:
c. Reemplaza el archivomodule.exports = require("@discourse/lint-configs/prettier");.template-lintrc.jscon.template-lintrc.cjs:module.exports = require("@discourse/lint-configs/template-lint"); - Intenta ejecutar Prettier de nuevo y observa que funciona sin errores:
$ yarn prettier --check --write "{common,javascripts,desktop,mobile,test,scss}/**/*.{js,gjs,es6,scss}" Checking formatting... All matched files use Prettier code style! ✨ Done in 0.46s.
Entonces, ¿debo asumir que la CLI discourse_theme está desactualizada y que, en el futuro, debería usar la opción @discourse/lint-configs en mis proyectos?

