Начиная с сегодняшнего дня, все новые установки Discourse с самостоятельным размещением по умолчанию будут использовать наши сборки Ember CLI в продакшене.
Мы сами используем эти сборки в продакшене уже довольно давно, и они должны быть стабильными и работать со всеми основными плагинами. Если вы столкнётесь с какими-либо проблемами и захотите отключить эту функцию, отредактируйте файл app.yml и удалите строку EMBER_CLI_PROD_ASSETS: 1.
В противном случае, пожалуйста, сообщайте нам о любых ошибках, и мы оперативно их исправим.
В ближайшем будущем все установки Discourse будут использовать сборки Ember CLI.
Да, @Simon_Manning прав — вы можете включить это вручную, если хотите, или подождать, пока это станет настройкой по умолчанию. Мы внедряем это постепенно, чтобы заранее выявить все ошибки.
Browserslist: версия caniuse-lite устарела. Пожалуйста, выполните:
npx browserslist@latest --update-db
Почему это стоит делать регулярно:
https://github.com/browserslist/browserslist#browsers-data-updating
Я очень взволнован этими изменениями — это отличный шаг для будущего Discourse.
Я бы просто посоветовал следующее: если вы используете сторонние компоненты тем или плагины, создайте отдельный тестовый экземпляр с тем же набором и протестируйте всё там, прежде чем переходить на Ember CLI на вашем основном сайте.
Я только что выпустил значительные изменения для одного из своих компонентов темы; без них основной сайт мог бы сломаться.
Если коротко: это официально поддерживаемый способ разработки приложений на Ember, который должен облегчить вклад людей и упростить обновление Ember в будущем.
Правда ли, что из-за этого изменения сломаются только компоненты тем, в которых используется JavaScript Wyeth?
Есть ли простой способ выполнить запрос для поиска компонентов тем, содержащих JavaScript? Либо через Data Explorer, либо через Rails-запрос? Мне нужно определить, какие сайты могут пострадать от этого изменения, и предложить им бесплатно воспользоваться моим новым продуктом (чтобы наконец найти тестировщиков) для установки тестового сайта и проведения проверки перед обновлением продакшн-окружения.
Это верно — данное изменение в ember CLI не затрагивает HTML или CSS части тем/компонентов.
В целом, проблемные компоненты тем можно выявить, обратив внимание на жёлтые уведомления об устаревании в консоли браузера (JS) в старой среде без ember-cli. (Переход на Ember CLI — это причина, по которой мы вводим эти устаревания.)
Meta использует Ember CLI уже несколько недель, и мы работаем над тем, чтобы все наши официальные темы и плагины корректно работали в новой среде.
Хорошо. Значит, если я получу /admin/customize/themes.json (или какой там на самом деле путь), в нём будут предупреждения. Как думаете, вероятно ли, что будут ложные срабатывания (т.е. предупреждений нет, но при обновлении возникнет ошибка)?
Кстати, если всё-таки произойдёт сбой, вам просто нужно отключить переменную окружения.
Что касается плагинов: если я вижу предупреждения об устаревании в консоли JavaScript, значит, мне наконец придётся разобраться, что они означают? Казалось бы, они исходят от используемых мной компонентов, а не от моего кода, но Ember и JavaScript всё ещё довольно загадочны для меня (несмотря на то, что у меня есть куча кода, который я хотя бы в основном сам написал).
Нет, предупреждения об устаревании появляются во время выполнения в консоли вашего браузера. Они не будут отображаться в REST API темы.
На данный момент вы можете так поступить. Однако мы планируем очень скоро сделать это стандартным поведением по умолчанию, без возможности отключения, поэтому лучшее решение — устранить первопричину.
Да, боюсь, что так. Если вы считаете, что они исходят от основных компонентов, или вам трудно найти причину, пожалуйста, создайте тему в канале Development с подробностями.
Ха. Если вам повезет. Если нет — вы получите полную ошибку и полную остановку выполнения JavaScript. Это может привести к появлению пустых или поврежденных страниц.
На данный момент я обнаружил различные проблемы, но чаще всего это потеря некоторых атрибутов объекта Discourse, из-за чего приходится искать другие способы получения атрибутов сайта и пользователя. (Подсказка: они доступны внутри компонентов. Вы можете увидеть мою недавнюю работу над TLP TC).