Je suis maintenant sur la dernière version du commit (105634435f). Je mets à jour Discourse environ une fois par semaine. Habituellement, aucun problème ne se pose. Mais cette fois, plusieurs composants de thème ont échoué à se charger. Par « échec de chargement », j’entends que les composants n’apparaissent plus. La fonctionnalité de journal dans le panneau d’administration ne montre rien d’étrange que je puisse relier à ce problème. Beaucoup de ces erreurs semblent fortuites et surviennent déjà depuis un certain temps. Par exemple, des erreurs MimeType rares et des délais d’attente pour les requêtes DNS vers Google ; là encore, elles se produisent rarement.
Ces plugins ne se chargent plus après la mise à jour :
DiscoTOC
discourse gifs
Discourse Jitsi
Hamburger Theme Selector
Nav Links Component
Tag Icons
Les seuls qui fonctionnent encore sont :
Discourse Kanban
Easy Footer
Si davantage d’informations sont nécessaires (ce qui est probable), je suis heureux de vous les fournir ; veuillez me donner les instructions nécessaires. Ce message est avant tout pour signaler qu’il y a un problème, probablement dû à un changement récent. Désolé pour le manque d’informations…
Savez-vous pourquoi des erreurs sont levées pour les variables JS non strictement définies dans les composants ? S’agit-il d’une erreur de post-traitement ? Y a-t-il eu des changements ici ?
La modification à l’origine de ces problèmes a été annulée il y a une heure. Veuillez mettre à jour vers la dernière version si votre site a été affecté.
Pour compléter ce que Falco a dit, le changement sera réintégré dans les prochains jours. Cependant, avant de le rétablir, je m’assurerai que tous nos thèmes/composants officiels sont compatibles avec cette modification. Ainsi, si vous remarquez à nouveau le problème avec les thèmes/composants officiels, les mettre à jour devrait le résoudre.
Je publierai également un message expliquant comment rendre les thèmes/composants compatibles pour les personnes disposant de composants personnalisés/privés sur leurs sites.
Veuillez nous excuser pour la gêne occasionnée aujourd’hui.
L’un de nos thèmes (un thème de bannière) a été complètement réinitialisé à son format initial et tous les changements que nous avions apportés ont été perdus. Il n’y avait eu aucune mise à jour pour ce thème depuis 2018. Serions-nous en mesure de restaurer les modifications ?
Je ne pense pas que ce problème soit lié à cette fonctionnalité annulée. J’ai rencontré le même cas avec un composant il y a quelques semaines, probablement autour de la fonctionnalité de l’indicateur de fork (qui concerne les plugins, donc probablement sans rapport non plus, mais j’ai dû faire un fork du composant pour apporter des modifications).
Oui, ce changement est à l’origine du problème que vous avez constaté dans votre thème. Je dois entrer dans un peu plus de détails sur le système de thèmes pour expliquer ce qui s’est passé. Il existe deux façons d’ajouter du JS à un thème ou un composant Discourse : la première utilise des balises <script type="text/discourse-plugin"> à l’intérieur de fichiers head_tag.html, et la seconde utilise des fichiers JS autonomes situés dans un répertoire nommé javascripts de votre thème ou composant.
Avant mon changement d’aujourd’hui, le JavaScript contenu dans ces balises script spéciales était traité d’une manière qui dépendait de la variable globale Discourse, laquelle n’est pas disponible lors du développement sur Discourse avec Ember CLI. Dans le changement que j’ai poussé aujourd’hui, j’ai fait en sorte que Discourse traite le JS contenu dans ces balises comme s’il provenait de fichiers autonomes, ce qui nous a permis d’éviter d’utiliser la variable globale Discourse.
Or, un « effet secondaire » du fait de traiter les balises JavaScript comme des fichiers est que le JavaScript à l’intérieur de ces balises aura désormais la directive "use strict", ce qui n’était pas le cas auparavant. Cette directive est à l’origine des erreurs que vous avez constatées :
Je vous recommande de conserver tous les changements que vous avez apportés aujourd’hui dans votre thème, car les balises JS seront à nouveau traitées comme des fichiers autonomes lorsque je rétablirai mon changement.
Oui, toutes les modifications ont disparu, des changements CSS et JS jusqu’aux modifications de texte c’est-à-dire que mon thème est revenu à son format initial avec des textes comme « Lorem ipsum dolor sit amet… ». Quoi qu’il en soit, je vais utiliser la sauvegarde, mais c’était étrange que cela se produise après la mise à niveau.