Новые установки по умолчанию будут использовать сборки Ember CLI в Production

Начиная с сегодняшнего дня, все новые установки Discourse с самостоятельным размещением по умолчанию будут использовать наши сборки Ember CLI в продакшене.

Мы сами используем эти сборки в продакшене уже довольно давно, и они должны быть стабильными и работать со всеми основными плагинами. Если вы столкнётесь с какими-либо проблемами и захотите отключить эту функцию, отредактируйте файл app.yml и удалите строку EMBER_CLI_PROD_ASSETS: 1.

В противном случае, пожалуйста, сообщайте нам о любых ошибках, и мы оперативно их исправим.

В ближайшем будущем все установки Discourse будут использовать сборки Ember CLI.

18 лайков

Текущие самохостинговые сайты: требуется ли полная пересборка или обновление администратора для перехода?

3 лайка

Мой вывод заключается в том, что для существующих установок можно перейти на использование Ember CLI одним из двух способов:

  1. Отредактировать app.yml, добавив строку EMBER_CLI_PROD_ASSETS: 1, а затем пересобрать проект, или
  2. Подождать «недалекого будущего», когда это станет стандартом, и затем пересобрать проект.
5 лайков

Да, @Simon_Manning прав — вы можете включить это вручную, если хотите, или подождать, пока это станет настройкой по умолчанию. Мы внедряем это постепенно, чтобы заранее выявить все ошибки.

7 лайков

Ок, я установил. На что мне стоит обращать внимание?

1 лайк
Browserslist: версия caniuse-lite устарела. Пожалуйста, выполните:
npx browserslist@latest --update-db

Почему это стоит делать регулярно:
https://github.com/browserslist/browserslist#browsers-data-updating
1 лайк

Пожалуйста, сообщите нам, если что-то сломалось.

4 лайка

Не могли бы вы также объяснить, что это влечет за собой и почему это важно — для тех, кто не знаком с экосистемой Ember.

9 лайков

Здравствуйте, есть ли какие-либо сроки? Спасибо.

1 лайк

Вы уже можете это реализовать.

Всё, что нужно сделать, — добавить строку в ваш app.yml и пересобрать.

2 лайка

Мы планируем включить его для более старых сайтов примерно через месяц.

8 лайков

Я очень взволнован этими изменениями — это отличный шаг для будущего Discourse.

Я бы просто посоветовал следующее: если вы используете сторонние компоненты тем или плагины, создайте отдельный тестовый экземпляр с тем же набором и протестируйте всё там, прежде чем переходить на Ember CLI на вашем основном сайте.

Я только что выпустил значительные изменения для одного из своих компонентов темы; без них основной сайт мог бы сломаться.

14 лайков

Здесь есть дополнительная информация:

Если коротко: это официально поддерживаемый способ разработки приложений на Ember, который должен облегчить вклад людей и упростить обновление Ember в будущем.

9 лайков

Да, я установил EMBER_CLI_PROD_ASSETS: 1, но тема Dracula работает некорректно.
Поэтому я отключил эту функцию :frowning:

3 лайка

Вам следует опубликовать сообщение на Dracula a Dark Theme for Discourse, чтобы они могли это исправить.

5 лайков

Правда ли, что из-за этого изменения сломаются только компоненты тем, в которых используется JavaScript Wyeth?

Есть ли простой способ выполнить запрос для поиска компонентов тем, содержащих JavaScript? Либо через Data Explorer, либо через Rails-запрос? Мне нужно определить, какие сайты могут пострадать от этого изменения, и предложить им бесплатно воспользоваться моим новым продуктом (чтобы наконец найти тестировщиков) для установки тестового сайта и проведения проверки перед обновлением продакшн-окружения.

1 лайк

Это верно — данное изменение в ember CLI не затрагивает HTML или CSS части тем/компонентов.

В целом, проблемные компоненты тем можно выявить, обратив внимание на жёлтые уведомления об устаревании в консоли браузера (JS) в старой среде без ember-cli. (Переход на Ember CLI — это причина, по которой мы вводим эти устаревания.)

Meta использует Ember CLI уже несколько недель, и мы работаем над тем, чтобы все наши официальные темы и плагины корректно работали в новой среде.

6 лайков

Хорошо. Значит, если я получу /admin/customize/themes.json (или какой там на самом деле путь), в нём будут предупреждения. Как думаете, вероятно ли, что будут ложные срабатывания (т.е. предупреждений нет, но при обновлении возникнет ошибка)?

Кстати, если всё-таки произойдёт сбой, вам просто нужно отключить переменную окружения.

Что касается плагинов: если я вижу предупреждения об устаревании в консоли JavaScript, значит, мне наконец придётся разобраться, что они означают? Казалось бы, они исходят от используемых мной компонентов, а не от моего кода, но Ember и JavaScript всё ещё довольно загадочны для меня (несмотря на то, что у меня есть куча кода, который я хотя бы в основном сам написал).

2 лайка

Нет, предупреждения об устаревании появляются во время выполнения в консоли вашего браузера. Они не будут отображаться в REST API темы.

На данный момент вы можете так поступить. Однако мы планируем очень скоро сделать это стандартным поведением по умолчанию, без возможности отключения, поэтому лучшее решение — устранить первопричину.

Да, боюсь, что так. Если вы считаете, что они исходят от основных компонентов, или вам трудно найти причину, пожалуйста, создайте тему в канале Development с подробностями.

5 лайков

Ха. Если вам повезет. Если нет — вы получите полную ошибку и полную остановку выполнения JavaScript. Это может привести к появлению пустых или поврежденных страниц.

На данный момент я обнаружил различные проблемы, но чаще всего это потеря некоторых атрибутов объекта Discourse, из-за чего приходится искать другие способы получения атрибутов сайта и пользователя. (Подсказка: они доступны внутри компонентов. Вы можете увидеть мою недавнюю работу над TLP TC).

2 лайка