Na versão mais recente da configuração de linting padrão do Discourse, habilitamos a regra require-strict-mode do ember-template-lint. Isso gerará um erro de linting para quaisquer arquivos .hbs.
Para resolver os avisos, você deve converter todos os seus templates de componentes, rotas e conectores para arquivos .gjs. Para facilitar isso, criamos o discourse-gjs-codemod, que se baseia no @embroider/template-tag-codemod do Ember.
Para usar o codemod, primeiro certifique-se de que suas dependências de linting estejam atualizadas, copiando o package.json mais recente do plugin skeleton ou do theme skeleton. Em seguida, execute eslint e prettier:
pnpm i
pnpm eslint --fix .
pnpm prettier --write "**/*.{gjs,js,hbs,scss}"
Se algum problema não puder ser corrigido automaticamente, resolva-o manualmente agora. Não execute o ember-template-lint ainda - espera-se que ele falhe.
Se houver algum problema que não possa ser resolvido automaticamente, informações serão impressas no terminal. Assim que você resolver o problema, execute o codemod novamente.
Para mais informações sobre o formato de arquivo .gjs, consulte o guia oficial:
*) pfaffman@noreno:~/src/pfaffman/discourse-pfaffmanager$ pnpm dlx https://github.com/discourse/discourse-gjs-codemod
Username for 'https://github.com': pfaffman
Password for 'https://pfaffman@github.com':
/home/pfaffman/.cache/pnpm/dlx/txqdpi2aznswmhsvgh3pgqp3te/1971d72469d-323788:
ERROR Command failed with exit code 128: git ls-remote git+ssh://git@github.com/discourse/discourse-gjs-codemod.git HEAD
ERROR: Repository not found.
fatal: Could not read from remote repository.
Concluído em 1.6s usando pnpm v9.15.9
file:///home/pfaffman/.cache/pnpm/dlx/txqdpi2aznswmhsvgh3pgqp3te/1971d8d4970-32e7a4/node_modules/.pnpm/execa@9.6.0/node_modules/execa/lib/return/final-error.js:6
return new ErrorClass(message, options);
^
ExecaError: Comando falhou com código de saída 255: '/home/pfaffman/.cache/pnpm/dlx/txqdpi2aznswmhsvgh3pgqp3te/1971d8d4970-32e7a4/node_modules/.pnpm/@embroider+template-
tag-codemod@1.2.1-unstable.ce3535d_@glimmer+component@2.0.0_handlebars@4._arnanpbg4hbtumvl4wyacggoiu/node_modules/@embroider/template-tag-codemod/dist/src/cli.js' '
--relativeLocalPaths=false' '--nativeRouteTemplates=false' '--nativeLexicalThis=false' '--templateInsertion=end' --addNameToTemplateOnly '--customResolver=/home/pfa
ffman/.cache/pnpm/dlx/txqdpi2aznswmhsvgh3pgqp3te/1971d8d4970-32e7a4/node_modules/.pnpm/discourse-gjs-codemod@https+++codeload.github.com+discourse+discourse-gjs-cod
emod+tar.gz+a4bc_2dxbzd2itovnk6l7sa4geot32y/node_modules/discourse-gjs-codemod/custom-resolver.js' '--renamingRules=/home/pfaffman/.cache/pnpm/dlx/txqdpi2aznswmhsvg
h3pgqp3te/1971d8d4970-32e7a4/node_modules/.pnpm/discourse-gjs-codemod@https+++codeload.github.com+discourse+discourse-gjs-codemod+tar.gz+a4bc_2dxbzd2itovnk6l7sa4geo
t32y/node_modules/discourse-gjs-codemod/rules.js' '--renderTests=test/**/*.js' '--routeTemplates=**/templates/**/*.hbs' '--components=**/components/**/*.hbs'
Mas parece que ele converteu todos, exceto alguns dos templates, e embora eu ainda não entenda o porquê, não estou surpreso, pois eles têm algumas coisas malucas neles e eu estava no processo de reescrevê-los de qualquer maneira.
Sim. Acho que os erros são todos espúrios. Apenas algumas coisas não foram convertidas. Não tenho certeza do porquê, mas como eu disse, eu estava planejando reescrevê-las de qualquer maneira.
Eu acho que foram uma dúzia ou mais que conseguiu reescrever, então é um milagre absoluto!
Eu vou tentar em outras coisas que são públicas em breve.