Nell’ultima versione della configurazione di linting standard di Discourse, abbiamo abilitato la regola require-strict-mode di ember-template-lint. Questo genererà un errore di linting per qualsiasi file .hbs.
Per risolvere gli avvisi, dovresti convertire tutti i tuoi template di componenti, route e connettori in file .gjs. Per semplificare questa operazione, abbiamo creato discourse-gjs-codemod, che si basa su @embroider/template-tag-codemod di Ember.
Per utilizzare il codemod, assicurati innanzitutto che le tue dipendenze di linting siano aggiornate copiando l’ultimo package.json da plugin skeleton o theme skeleton. Quindi, esegui eslint e prettier:
pnpm i
pnpm eslint --fix .
pnpm prettier --write "**/*.{gjs,js,hbs,scss}"
Se ci sono problemi che non possono essere corretti automaticamente, risolvili manualmente ora. Non eseguire ancora ember-template-lint: ci si aspetta che fallisca.
Se ci sono problemi che non possono essere risolti automaticamente, verranno stampate informazioni nel terminale. Una volta risolto il problema, esegui nuovamente il codemod.
Per ulteriori informazioni sul formato dei file .gjs, consulta la guida ufficiale:
*) 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.
Completato in 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: Il comando non è riuscito con codice di uscita 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'
Ma sembra che abbia convertito tutti tranne un paio di template e, anche se non capisco ancora perché, non sono sorpreso, dato che hanno delle cose strane al loro interno ed ero comunque in procinto di riscriverli.
Sì. Penso che gli errori siano tutti spurii. Solo un paio di cose non sono state convertite. Non sono sicuro del perché, ma come ho detto, avevo comunque intenzione di riscriverle.
Penso che siano state una dozzina o più quelle che è riuscito a riscrivere, quindi è un miracolo assoluto!