Sono ora all’ultimo commit (105634435f). Aggiorno Discourse circa una volta a settimana. Di solito non ci sono problemi. Ma ora diversi componenti del tema non riescono a caricarsi. Con “non riescono a caricarsi” intendo che i componenti non vengono più visualizzati. La funzionalità dei log nel pannello di amministrazione non mostra nulla di strano che possa collegare a questo problema. Molti di questi errori sembrano casuali e si verificano già da un periodo di tempo più lungo. Come errori rari di MimeType e timeout DNS verso Google; anche questi si verificano raramente.
Questi plugin non riescono a caricarsi dopo l’aggiornamento:
DiscoTOC
discourse gifs
Discourse Jitsi
Hamburger Theme Selector
Nav Links Component
Tag Icons
Quelli che funzionano sono solo:
Discourse Kanban
Easy Footer
Se servono più informazioni (immagino di sì), sono felice di fornirle: vi prego di indicarmi cosa serve. Questo post è più un avviso che qualcosa non va, e probabilmente è dovuto a una modifica recente. Scusate per la mancanza di informazioni…
Sai perché vengono lanciati errori per le variabili JS non definite in modo rigoroso nei componenti? Si tratta di un errore di post-elaborazione? È cambiato qualcosa in questo ambito?
La modifica che ha causato questi problemi è stata annullata un’ora fa; se il tuo sito ne è stato interessato, ti preghiamo di aggiornare all’ultima versione.
Per aggiungere a quanto detto da Falco, la modifica verrà reintrodotta nei prossimi giorni, ma prima di inserirla nuovamente mi assicurerò che tutti i nostri temi/componenti ufficiali siano compatibili con la modifica. Quindi, se inizierai a riscontrare nuovamente il problema con i temi/componenti ufficiali, aggiornandoli dovresti risolvere il problema.
Inoltre, pubblicherò un post per spiegare come rendere i temi/componenti compatibili per coloro che hanno componenti personalizzati/privati sui loro siti.
Uno dei nostri temi (un tema banner) è stato completamente sovrascritto nel suo formato iniziale e tutte le modifiche che avevamo apportato sono andate perse. Non c’era stato alcun aggiornamento per il tema dal 2018. Saremmo in grado di ripristinare le modifiche?
Non credo che questo problema abbia a che fare con questa funzionalità ripristinata. Ho avuto lo stesso caso con un componente alcune settimane fa, probabilmente intorno alla funzionalità dell’indicatore di fork (che riguarda i plugin, quindi probabilmente irrilevante anch’essa, ma ho dovuto comunque forkare il componente per apportare delle modifiche).
Sì, quella modifica è la causa del problema che hai riscontrato nel tuo tema. Devo entrare in un po’ di dettaglio sul sistema dei temi per spiegare cosa è successo. Ci sono due modi per aggiungere JS a un tema/componente di Discourse: il primo utilizza tag <script type="text/discourse-plugin"> all’interno di file head_tag.html, mentre il secondo utilizza file JS autonomi che risiedono in una directory chiamata javascripts nel tuo tema/componente.
Prima della mia modifica di oggi, il JavaScript all’interno di quei tag script speciali veniva elaborato in un modo che faceva affidamento sulla variabile globale Discourse, la quale non è disponibile quando si sviluppa su Discourse con Ember CLI. Con la modifica che ho inviato oggi, ho fatto sì che Discourse trattasse il JS all’interno di quei tag come se provenisse da file autonomi, il che ci ha permesso di evitare l’uso della variabile globale Discourse.
Ora, un “effetto collaterale” del trattare i tag JavaScript come file è che il JavaScript all’interno dei tag avrà la direttiva "use strict", cosa che non aveva in precedenza, e quella direttiva causa gli errori che hai visto:
Ti consiglio di mantenere tutte le modifiche che hai apportato oggi nel tuo tema, perché i tag JS verranno nuovamente trattati come file autonomi quando reintrodurrò la mia modifica.
Sì, tutte le modifiche sono andate perse, dalle modifiche CSS e JS fino a quelle al testo cioè il mio tema è tornato al suo formato iniziale con testi come “Lorem ipsum dolor sit amet…”. Comunque userò il backup, ma è stato strano che accadesse dopo l’aggiornamento.