Mientras edito mis plantillas, si cometo un error, por ejemplo, omito una etiqueta de cierre, como en...
{% if variable %} Notice there is no closing tag within this template!
Al compilar esto, nunjucks parece permanecer en silencio. No veo una excepción o console.log. ¿Es esta la experiencia deseada? ¿Hay un indicador de configuración para activar "morir en voz alta si algo está mal"?
Lo mismo se aplica durante el renderizado. Si mi plantilla está bien, pero la renderizo con datos que no coinciden, parece fallar silenciosamente. ¿Se supone que debe fallar silenciosamente, no lanzar ninguna excepción, no iniciar sesión en la consola?
Todo es mi culpa. Nunjucks arroja excepciones para este tipo de cosas. La excepción se estaba perdiendo debido a cómo estaba usando la biblioteca de promesas de jQuery. La fuente lo explica muy bien...
// Support: Promises/A+ section 2.3.3.3.4.1 // https://promisesaplus.com/#point-61 // Ignore post-resolution exceptions if ( depth + 1 >= maxDepth ) {
La idea es que, si el controlador .then()
de una promesa arroja una excepción, la biblioteca de promesas detecta esa excepción. Luego se llama al controlador .fail()
de la promesa. Si la promesa no tiene un controlador de fail
, es cuando la excepción se "pierde". Al usar promesas, compré la historia del manejo de errores de las promesas.
No fue culpa de los nunjucks.