Sto riscontrando una differenza significativa nella configurazione di linting predefinita e nel modo in cui dovrebbe funzionare.
La configurazione predefinita installa il pacchetto eslint-config-discourse come dipendenza di sviluppo:
https://www.npmjs.com/package/eslint-config-discourse
Tuttavia, quando cerco il codice sorgente su https://github.com/discourse/eslint-config-discourse il repository reindirizza a @discourse/lint-configs; che è anche un pacchetto all’interno del monorepo di eslint-config-discourse. Con i test inclusi, eslint-config-discourse dovrebbe essere un wrapper, ma non funziona come dovrebbe, almeno secondo la mia esperienza:
Configurazione di Linting Predefinita
- Crea un nuovo tema usando il comando
discourse_theme new. - Rivedi la configurazione di linting generata:
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" } } - Esegui Prettier sul pacchetto, e si lamenterà dei file
*.gjs:yarn prettier --check --write "{common,javascripts,desktop,mobile,test,scss}/**/*.{js,gjs,es6,scss}"Errore: Nessun parser è stato in grado di essere dedotto per il file ... .gjs
Configura @discourse/lint-configs direttamente
https://www.npmjs.com/package/@discourse/lint-configs
- Esegui
yarn remove -D eslint-config-discourseper disinstallare il pacchetto. - Esegui
yarn add -D @discourse/lint-configsper installarlo come dipendenza di sviluppo - Segui le istruzioni per creare i file di configurazione di linting:
a. Sostituisci il file.eslintrccon.eslintrc.cjs
b. Aggiungi il filemodule.exports = require("@discourse/lint-configs/eslint-theme");.prettierrc.cjs:
c. Sostituisci il filemodule.exports = require("@discourse/lint-configs/prettier");.template-lintrc.jscon.template-lintrc.cjs:module.exports = require("@discourse/lint-configs/template-lint"); - Prova a eseguire nuovamente Prettier e osserva che funziona senza errori:
$ yarn prettier --check --write "{common,javascripts,desktop,mobile,test,scss}/**/*.{js,gjs,es6,scss}" Verifica della formattazione... Tutti i file corrispondenti utilizzano lo stile del codice Prettier! ✨ Completato in 0.46s.
Quindi, dovrei presumere che la CLI discourse_theme sia obsoleta e che in futuro dovrei utilizzare l’opzione @discourse/lint-configs nei miei progetti?

