Estaba buscando una forma de analizar archivos Handlebars en Discourse. Encontré un comando que parece ejecutarse, pero no realiza cambios ni lista problemas.
yarn ember-template-lint --fix path/to/files
No estoy seguro de si debería funcionar en este momento.
No se requiere magia , pero asegúrate de ejecutar el comando en el directorio raíz de Discourse. Esto me ha pasado varias veces ya.
Compara:
# en [discourse]/app/assets/javascripts
$ yarn ember-template-lint .
✨ Listo en 2.57s.
# en [discourse]
$ yarn ember-template-lint app/assets/javascripts
app/assets/javascripts/discourse/app/templates/tags.hbs
4:0 error Uso inesperado de {{debugger}}. no-debugger
4:0 error El uso de llaves triples es inseguro no-triple-curlies
3:15 error Indentación incorrecta para `d-section` que comienza en L1:C0. Se esperaba que `{{/d-section}}` que termina en L3:C15 estuviera con una indentación de 0, pero se encontró en 1. block-indentation
2:4 error Indentación incorrecta para `{{outlet}}` que comienza en L2:C4. Se esperaba que `{{outlet}}` estuviera con una indentación de 2, pero se encontró en 4. block-indentation
1:23 error Debes usar comillas dobles en las plantillas quotes
✖ 5 problemas (5 errores, 0 advertencias)
error El comando falló con código de salida 1.
Además, ten en cuenta que usará nuestra configuración (.template-lintrc.js), por lo que es posible que no informe todos los problemas esperados, ya que algunas reglas están actualmente deshabilitadas.
@justin Acabo de darme cuenta de que nuestros flujos de trabajo de GitHub Actions para plugins actualmente no comparten esta configuración. Deberíamos cambiar eso en algún momento.
Ember template lint no puede arreglarlo todo, al igual que eslint, y de hecho ember template lint solo puede corregir algunas cosas, a diferencia de eslint.
Principalmente reportará errores, pero tendrás que corregirlos manualmente.
Ah, sí. El problema es que ember-template-lint tiene en cuenta automáticamente el archivo .gitignore. Y los plugins que no están empaquetados se ignoran.
Por lo tanto, para ejecutar el análisis de plantillas en todos los plugins:
yarn ember-template-lint --no-ignore-pattern plugins
# o cualquier otro directorio, por ejemplo, un solo plugin:
yarn ember-template-lint --no-ignore-pattern plugins/discourse-calendar