Estou vendo uma diferença significativa na configuração padrão de linting e na forma como ela deveria funcionar.
A configuração padrão instala o pacote eslint-config-discourse como uma dependência de desenvolvimento:
https://www.npmjs.com/package/eslint-config-discourse
No entanto, quando procuro o código-fonte em https://github.com/discourse/eslint-config-discourse, o repositório é redirecionado para @discourse/lint-configs, que também é um pacote dentro do monorepo eslint-config-discourse. Com os testes incluídos, eslint-config-discourse deveria ser um wrapper, mas não está funcionando como deveria, pelo menos não na minha experiência:
Configuração Padrão de Linting
- Crie um novo tema usando o comando
discourse_theme new. - Revise a configuração de linting gerada:
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" } } - Execute o Prettier no pacote e ele reclamará sobre os arquivos
*.gjs:yarn prettier --check --write "{common,javascripts,desktop,mobile,test,scss}/**/*.{js,gjs,es6,scss}"Error: No parser could be inferred for file ... .gjs
Configurar @discourse/lint-configs Diretamente
https://www.npmjs.com/package/@discourse/lint-configs
- Execute
yarn remove -D eslint-config-discoursepara desinstalar o pacote. - Execute
yarn add -D @discourse/lint-configspara instalar como dependência de desenvolvimento. - Siga as instruções para criar os arquivos de configuração de linting:
a. Substitua o arquivo.eslintrcpor.eslintrc.cjs
b. Adicione o arquivomodule.exports = require("@discourse/lint-configs/eslint-theme");.prettierrc.cjs:
c. Substitua o arquivomodule.exports = require("@discourse/lint-configs/prettier");.template-lintrc.jspor.template-lintrc.cjs:module.exports = require("@discourse/lint-configs/template-lint"); - Tente executar o Prettier novamente e observe que ele funciona sem erros:
$ 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.
Então, devo presumir que o CLI discourse_theme está desatualizado e, daqui para frente, devo usar a opção @discourse/lint-configs nos meus projetos?

