Я сейчас нахожусь на последней версии коммита (105634435f). Я обновляю Discourse примерно раз в неделю. Обычно никаких проблем не возникает. Но теперь несколько компонентов тем перестали загружаться. Под «не загрузились» я имею в виду, что компоненты больше не отображаются. Функция просмотра логов в панели администратора не показывает ничего необычного, что можно было бы связать с этой проблемой. Многие из этих ошибок кажутся случайными и наблюдаются уже в течение длительного времени. Например, редкие ошибки MimeType и таймауты при запросах DNS к Google — они тоже возникают редко.
Эти плагины перестали загружаться после обновления:
DiscoTOC
discourse gifs
Discourse Jitsi
Hamburger Theme Selector
Nav Links Component
Tag Icons
Работают только следующие:
Discourse Kanban
Easy Footer
Если потребуется дополнительная информация (я полагаю, что потребуется), я с радостью предоставлю её. Пожалуйста, дайте инструкции. Этот пост скорее служит сигналом о том, что что-то пошло не так, и проблема, вероятно, связана с недавними изменениями. Извините за недостаток информации…
Знаете ли вы, почему возникают ошибки для переменных JS, объявленных без строгого режима в компонентах? Это ошибка постобработки? Что-то изменилось здесь?
Дополняя сказанное Фалько, изменение будет возвращено в ближайшие несколько дней, но перед этим я удостоверюсь, что все наши официальные темы и компоненты совместимы с этим изменением. Поэтому, если вы снова столкнётесь с проблемой в официальных темах или компонентах, её решение должно быть в их обновлении.
Также я опубликую пост с объяснением, как сделать темы и компоненты совместимыми для тех, кто использует собственные или приватные компоненты на своих сайтах.
Приношу извинения за доставленные сегодня неудобства.
Одна из наших тем (баннерная тема) была полностью перезаписана до её исходного формата, и все внесённые нами изменения были утеряны. Обновлений для этой темы не было с 2018 года. Сможем ли мы вернуть изменения?
Я не думаю, что эта проблема связана с отменённой функцией. У меня был похожий случай с компонентом несколько недель назад, вероятно, в период, когда внедрялась функция индикатора форка (хотя это касается плагинов, так что, вероятно, тоже не имеет значения, но мне всё равно пришлось форкнуть компонент, чтобы внести изменения).
Это действительно странно, у нас никогда не было такой проблемы. Она появилась только с последней версией. И я хочу понять, что именно здесь происходит.
Да, именно это изменение вызвало проблему, которую вы заметили в своей теме. Мне нужно немного подробнее рассказать о системе тем, чтобы объяснить, что произошло. Есть два способа добавить JavaScript в тему или компонент Discourse: первый использует теги <script type="text/discourse-plugin"> внутри файлов head_tag.html, а второй — отдельные файлы JavaScript, расположенные в директории javascripts вашей темы или компонента.
До моего сегодняшнего изменения JavaScript внутри этих специальных тегов обрабатывался с опорой на глобальную переменную Discourse, которая недоступна при разработке в Discourse с использованием Ember CLI. В изменении, которое я внес сегодня, я настроил Discourse так, чтобы он обрабатывал JavaScript внутри этих тегов так же, как и код из отдельных файлов. Это позволило нам отказаться от использования глобальной переменной Discourse.
Теперь одним из «побочных эффектов» такой обработки тегов JavaScript как файлов является то, что код внутри них теперь содержит директиву "use strict", которой раньше не было. Именно эта директива вызвала ошибки, которые вы увидели:
Я рекомендую вам сохранить все внесённые сегодня изменения в вашей теме, поскольку после того, как я верну своё изменение, теги JavaScript снова будут обрабатываться как отдельные файлы.
Да, все изменения исчезли: от правок в CSS и JS до изменений текста То есть моя тема вернулась к своему начальному формату с текстами вроде «Lorem ipsum dolor sit amet…». В любом случае я воспользуюсь резервной копией, но это странно, что такое произошло после обновления.