Bonjour à tous. Désolé si cela a déjà été abordé (je ne l’ai pas trouvé) :
Développer un plugin Discourse sur ma machine locale est généralement assez lent. Chaque rechargement de mon application en cours d’exécution locale (pour voir les modifications de code) prend plus de 5 secondes. Donc, je modifie un fichier HTML/HBS ou JS, j’enregistre, puis je dois recharger l’application [edit : rafraîchir le navigateur] et attendre 5 secondes ou plus pour voir le changement.
Existe-t-il un moyen d’activer le rechargement à chaud (c’est-à-dire la mise à jour automatique de la vue locale) pour le développement de plugins Discourse en local ?
Il semble que les fichiers CSS soient mis à jour automatiquement, mais pas les fichiers HTML/HBS ou JS.
Bien que je surveille pour voir s’il y a des indices, je pense que c’est simplement comme ça. Et d’après ce que j’ai vu, c’est beaucoup pire sur un Mac.
Je parle ici du rafraîchissement du navigateur et de la disponibilité du hot reload pour éviter d’avoir à le faire. C’est le rafraîchissement du navigateur qui prend plus de 5 secondes pour afficher tout changement.
Si je dois arrêter et recharger le serveur (par exemple lorsque je modifie plugin.rb), cela prend probablement 60 secondes.
Le hot reload est bien sûr la norme pour le développement avec de nombreuses technologies aujourd’hui (je connais surtout Angular, qui suit cette norme), et c’est formidable pour le développement. Je pense qu’avec Rails, c’est possible via webpack (mais je ne suis pas sûr). Mon impression est que le hot reload n’est pas disponible pour le développement de Discourse, mais je voulais vérifier car ce serait formidable si cela l’était.
Cela semble super, merci. Pour l’utiliser en développement local, y a-t-il autre chose à faire que de télécharger la dernière version de Discourse depuis GitHub sur mon ordinateur ?
J’étais impatient de mettre à jour mon instance Discourse locale, et j’exécute maintenant la version 2.8 en local. Cependant, je ne parviens pas encore à faire fonctionner le rechargement à chaud (hot reload) pour les modifications HTML et JS.
Voici comment je lance les choses :
Je me place dans le dossier Discourse en local
$ redis-server //démarre le serveur
$ rails s//démarre l’application Rails
$ yarn//à exécuter uniquement la première fois, je suppose
$ bin/ember-cli//démarre Ember CLI. La commande ember serve --proxy "http://localhost:3000" m’a généré des erreurs pour une raison inconnue
Cela permet de faire fonctionner l’application correctement sur localhost:4200.
J’ai ajouté un plugin à mon instance Discourse locale, qui s’affiche bien sur localhost:4200. Cependant, si je modifie des fichiers HTML ou JS, ces changements ne sont visibles sur l’application locale qu’après avoir rafraîchi le navigateur.
Dois-je faire autre chose pour activer le rechargement à chaud ?
Bonjour. Le hot-reload est-il disponible avec ember-cli dans Discourse ? Je rencontre toujours le même problème que j’ai mentionné dans mon précédent message. En suivant ces étapes, je n’obtiens toujours pas le hot-reload (c’est-à-dire que je dois toujours actualiser le navigateur pour voir les modifications apportées au HTML et au JavaScript, et la sortie d’ember-cli dans le terminal ne semble pas réagir lorsque j’enregistre après une modification de fichier).
Je serais vraiment reconnaissant de pouvoir bénéficier du rechargement à chaud (surtout pour les fichiers JavaScript). Lorsque je code dans d’autres contextes où le rechargement à chaud est la norme, cela rend le processus de développement beaucoup plus rapide et plus agréable.
« livereload.js établit une connexion WebSocket vers Ember CLI. Cela permet à Ember CLI de notifier le navigateur pour déclencher un rafraîchissement après des modifications de JavaScript ou de styles. »
Je me demande pourquoi le navigateur l’ignore — je me demande s’il s’agit d’une option du navigateur liée à la sécurité du site ?
Je ne suis pas sûr, mais j’ai certainement réussi à activer le rechargement en direct dans le navigateur dans d’autres contextes ou avec d’autres frameworks. (Je ne sais pas pour Ember – je ne l’ai jamais utilisé qu’avec du code pour Discourse.)
Je suis curieux de savoir si le rechargement en direct est prévu. Il semble que oui, d’après la discussion précédente. Dans ce cas, je me demande si l’équipe de Discourse dispose du rechargement en direct et si elle fait quelque chose que je ne fais pas.
Ce serait certainement agréable d’obtenir une confirmation officielle sur la mesure dans laquelle le rechargement en direct devrait fonctionner ici, et s’il va au-delà du CSS côté client.
Le rafraîchissement automatique de la page est géré par Ember CLI. Pour le moment, les ressources des thèmes et des plugins sont compilées et servies par l’application Rails, et non par Ember CLI. Par conséquent, les modifications apportées aux thèmes ou aux plugins ne rafraîchissent pas automatiquement la page.
Cela pourrait être une amélioration que nous pourrions apporter à l’avenir. Mais pour l’instant, ce comportement est attendu.