Ich sehe einen erheblichen Unterschied in der Standard-Linting-Konfiguration und der Art und Weise, wie sie funktionieren soll.
Die Standardkonfiguration installiert das Paket eslint-config-discourse als Abhängigkeit für die Entwicklung:
https://www.npmjs.com/package/eslint-config-discourse
Wenn ich jedoch nach dem Quellcode unter https://github.com/discourse/eslint-config-discourse suche, wird das Repository zu @discourse/lint-configs weitergeleitet; was ebenfalls ein Paket unter dem Monorepo eslint-config-discourse ist. Mit den enthaltenen Tests soll eslint-config-discourse ein Wrapper sein, aber meiner Erfahrung nach funktioniert es nicht wie erwartet:
Standard-Linting-Konfiguration
- Erstellen Sie ein neues Thema mit dem Befehl
discourse_theme new. - Überprüfen Sie die generierte Linting-Konfiguration:
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" } } - Führen Sie Prettier auf dem Paket aus, und es wird sich über die
.gjs-Dateien beschweren:yarn prettier --check --write "{common,javascripts,desktop,mobile,test,scss}/**/*.{js,gjs,es6,scss}"Error: No parser could be inferred for file ... .gjs
Konfigurieren Sie @discourse/lint-configs direkt
https://www.npmjs.com/package/@discourse/lint-configs
- Führen Sie
yarn remove -D eslint-config-discourseaus, um das Paket zu deinstallieren. - Führen Sie
yarn add -D @discourse/lint-configsaus, um es als Entwicklungsabhängigkeit zu installieren. - Befolgen Sie die Anweisungen, um Linting-Konfigurationsdateien zu erstellen:
a. Ersetzen Sie die.eslintrc-Datei durch.eslintrc.cjs
b. Fügen Sie die Dateimodule.exports = require("@discourse/lint-configs/eslint-theme");.prettierrc.cjshinzu:
c. Ersetzen Sie diemodule.exports = require("@discourse/lint-configs/prettier");.template-lintrc.js-Datei durch.template-lintrc.cjs:module.exports = require("@discourse/lint-configs/template-lint"); - Versuchen Sie erneut, Prettier auszuführen, und stellen Sie fest, dass es ohne Fehler funktioniert:
$ 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.
Soll ich also davon ausgehen, dass die discourse_theme-CLI veraltet ist und ich in Zukunft die Option @discourse/lint-configs in meinen Projekten verwenden sollte?

