Je constate une différence significative dans la configuration de linting par défaut et la manière dont elle est censée fonctionner.
La configuration par défaut installe le package eslint-config-discourse en tant que dépendance de développement :
https://www.npmjs.com/package/eslint-config-discourse
Cependant, lorsque je recherche le code source sur https://github.com/discourse/eslint-config-discourse, le dépôt redirige vers @discourse/lint-configs, qui est également un package sous le monorepo eslint-config-discourse. Avec les tests inclus, eslint-config-discourse est censé être un wrapper, je pense, mais il ne fonctionne pas comme il le devrait, du moins pas d’après mon expérience :
Configuration de Linting par Défaut
- Créez un nouveau thème en utilisant la commande
discourse_theme new. - Examinez la configuration de linting générée :
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" } } - Exécutez Prettier sur le package, et il se plaindra des fichiers
*.gjs:yarn prettier --check --write "{common,javascripts,desktop,mobile,test,scss}/**/*.{js,gjs,es6,scss}"Error: No parser could be inferred for file ... .gjs
Configurer @discourse/lint-configs directement
https://www.npmjs.com/package/@discourse/lint-configs
- Exécutez
yarn remove -D eslint-config-discoursepour désinstaller le package. - Exécutez
yarn add -D @discourse/lint-configspour l’installer en tant que dépendance de développement. - Suivez les instructions pour créer les fichiers de configuration de linting :
a. Remplacez le fichier.eslintrcpar.eslintrc.cjs
b. Ajoutez le fichiermodule.exports = require("@discourse/lint-configs/eslint-theme");.prettierrc.cjs:
c. Remplacez le fichiermodule.exports = require("@discourse/lint-configs/prettier");.template-lintrc.jspar.template-lintrc.cjs:module.exports = require("@discourse/lint-configs/template-lint"); - Essayez d’exécuter à nouveau Prettier et observez qu’il fonctionne sans erreur :
$ 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.
Alors, dois-je présumer que l’outil CLI discourse_theme est obsolète et qu’à l’avenir, je devrais utiliser l’option @discourse/lint-configs dans mes projets ?

