Agora estou na versão mais recente do commit (105634435f). Atualizo o Discourse aproximadamente uma vez por semana. Geralmente, não há problemas algum. Mas agora, vários componentes de tema falharam ao carregar. Ao dizer que falharam ao carregar, quero dizer que os componentes não aparecem mais. O recurso de log no painel de administração não mostra nada estranho que eu possa relacionar a esse problema. Muitos desses erros parecem incidentais e já ocorrem há um período mais longo. Como erros raros de MimeType e timeouts de DNS para o Google, que, novamente, ocorrem raramente.
Os seguintes plugins falharam ao carregar após a atualização:
DiscoTOC
discourse gifs
Discourse Jitsi
Hamburger Theme Selector
Nav Links Component
Tag Icons
Os únicos que funcionam são:
Discourse Kanban
Easy Footer
Se mais informações forem necessárias (acho que serão), ficarei feliz em fornecê-las. Por favor, oriente-me. Este post é mais um alerta de que algo está errado e que provavelmente se trata de uma mudança recente. Desculpe pela falta de informações…
Você sabe por que erros são lançados para variáveis JS não definidas estritamente em componentes? Isso é um erro de pós-processamento? Algo mudou aqui?
Para complementar o que o Falco disse, a alteração será reintroduzida nos próximos dias, mas antes de fazê-lo, vou garantir que todos os nossos temas/componentes oficiais sejam compatíveis com a mudança. Portanto, se você começar a ver o problema novamente com temas/componentes oficiais, atualizá-los deve resolver a questão.
Também farei uma publicação explicando como tornar temas/componentes compatíveis para pessoas que possuem componentes personalizados/privados em seus sites.
Um dos nossos temas (um tema de banner) foi completamente sobrescrito para seu formato inicial e todas as alterações que havíamos feito foram perdidas. Não houve atualização para o tema desde 2018. Seria possível reverter as alterações?
Não acho que esse problema tenha a ver com esse recurso revertido. Tive o mesmo caso com um componente algumas semanas atrás, provavelmente por volta da funcionalidade do indicador de fork (que diz respeito a plugins, então provavelmente irrelevante também, mas eu tive que fazer um fork do componente para modificar as coisas).
É realmente estranho, nunca tivemos esse problema. Só apareceu com a versão mais recente. E estou me perguntando o que exatamente está acontecendo aqui.
Sim, essa alteração é a causa do problema que você viu no seu tema. Preciso entrar em alguns detalhes sobre o sistema de temas para explicar o que aconteceu. Existem duas maneiras de adicionar JS a um tema/componente do Discourse: a primeira usa tags <script type="text/discourse-plugin"> dentro de arquivos head_tag.html, e a outra usa arquivos JS independentes que ficam em um diretório chamado javascripts no seu tema/componente.
Antes da minha alteração de hoje, o JavaScript dentro dessas tags especiais era processado de uma forma que dependia da variável global Discourse, que não está disponível ao desenvolver no Discourse com o Ember CLI. Na alteração que implementei hoje, fiz com que o Discourse tratasse o JS dentro dessas tags como se viesse de arquivos independentes, o que nos permitiu evitar o uso da variável global Discourse.
Agora, um “efeito colateral” de tratar as tags de JavaScript como arquivos é que o JavaScript dentro delas terá a diretiva "use strict", algo que não ocorria antes. Essa diretiva é que causou os erros que você viu:
Recomendo que você mantenha todas as alterações que fez hoje no seu tema, pois as tags de JS voltarão a ser tratadas como arquivos independentes quando eu reintroduzir minha alteração.
Sim, todas as alterações sumiram, desde as mudanças no CSS e JS até mesmo as alterações no texto Ou seja, meu tema voltou ao seu formato inicial, com textos como “Lorem ipsum dolor sit amet…”. De qualquer forma, vou usar o backup, mas foi algo estranho de acontecer após a atualização.