Hola a todos. Disculpas si esto ya ha sido tratado (no lo encontré):
Desarrollar un plugin de Discourse en mi máquina local suele ser bastante lento. Cada recarga de mi aplicación en ejecución local (para ver los cambios de código) tarda más de 5 segundos. Así que hago un cambio en un archivo html/hbs o js, guardo, luego tengo que recargar la aplicación [edición: actualizar el navegador] y esperar más de 5 segundos para ver el cambio.
¿Existe alguna manera de hacer un recarga en caliente (es decir, actualización automática de la vista local) para el desarrollo local de plugins de Discourse?
Parece que los archivos CSS se actualizan automáticamente, pero no los archivos html/hbs o js.
Estoy hablando aquí de la recarga del navegador y de si el hot reload está disponible para evitar tener que hacerlo. Es la recarga del navegador la que tarda más de 5 segundos para ver cualquier cambio.
Si tengo que detener y recargar el servidor (en el caso de que cambie plugin.rb, por ejemplo), eso probablemente tome 60 segundos.
El hot reload es, por supuesto, el estándar para el desarrollo con muchas tecnologías hoy en día (estoy más familiarizado con Angular, que tiene este estándar), y es increíble para el desarrollo. Creo que con Rails es posible a través de webpack (pero no estoy seguro de eso). Mi impresión es que el hot reload no está disponible para el desarrollo de Discourse, pero quería verificarlo, porque sería genial si estuviera disponible.
Eso suena genial, gracias. Para usar esto en desarrollo local, ¿hay algo que deba hacer además de descargar la última versión de Discourse desde GitHub a mi computadora?
¡Estaba emocionado por actualizar mi instancia local de Discourse y ahora estoy ejecutando la versión 2.8 localmente. Sin embargo, aún no logro que la recarga en caliente funcione para los cambios en HTML y JavaScript.
Así es como ejecuto las cosas:
Entra en la carpeta de Discourse localmente
$ redis-server //inicia el servidor
$ rails s//inicia la aplicación de Rails
$ yarn//solo ejecútalo la primera vez, supongo
$ bin/ember-cli//inicia Ember CLI. El comando ember serve --proxy "http://localhost:3000" me dio errores por alguna razón
Esto hace que la aplicación se ejecute correctamente en localhost:4200.
He añadido un plugin a la instancia local de Discourse, el cual se muestra correctamente en localhost:4200. Sin embargo, si realizo cambios en los archivos HTML o JavaScript, estos cambios solo se reflejan en la aplicación que se ejecuta localmente si actualizo el navegador.
¿Hay algo más que deba hacer para que la recarga en caliente funcione?
Hola. ¿Está disponible la recarga en caliente (hot-reload) con ember-cli en Discourse? Todavía tengo el mismo problema que mencioné en mi publicación anterior. Siguiendo esos pasos, aún no obtengo la recarga en caliente (es decir, todavía tengo que actualizar el navegador para ver los cambios en HTML y JavaScript, y la salida de ember-cli en la terminal no parece registrarse cuando guardo después de modificar un archivo).
Agradecería mucho poder obtener la recarga en vivo (especialmente para archivos de JavaScript). Cuando programo en otros contextos, donde la recarga en vivo es estándar, este proceso hace que la codificación sea mucho más rápida y divertida.
" livereload.js inicia una conexión websocket de vuelta a Ember CLI. Esto permite que Ember CLI notifique al navegador para que active una actualización tras cambios en JavaScript o en los estilos."
Me pregunto por qué el navegador ignora esto; me pregunto si es una opción del navegador relacionada con la seguridad del sitio.
No estoy seguro, pero definitivamente he logrado que la recarga en vivo funcione en el navegador en otros contextos o con otros frameworks. (No estoy seguro sobre Ember; solo lo he usado para codificar cosas de Discourse.)
Me interesa saber si se espera que la recarga en vivo funcione. Parece que sí, según la discusión anterior. En ese caso, me pregunto si el equipo de Discourse tiene la recarga en vivo y si están haciendo algo que yo no hago.
Sin duda, sería agradable obtener una declaración oficial sobre el grado en que la recarga en vivo debería funcionar aquí y si va más allá del CSS en el lado del cliente.
La actualización automática de la página es gestionada por ember CLI. Por el momento, los activos de temas y complementos son compilados y servidos por la aplicación Rails, no por ember CLI. Por lo tanto, los cambios en temas o complementos no actualizan automáticamente la página.
Esto podría ser algo que podamos mejorar en el futuro. Pero por ahora, es un comportamiento esperado.