Всем привет. Прошу прощения, если этот вопрос уже обсуждался (я не нашёл):
Разработка плагина для Discourse на локальной машине обычно довольно медленная. Каждая перезагрузка локально запущенного приложения (чтобы увидеть изменения в коде) занимает более 5 секунд. То есть я вношу изменения в HTML/HBS или JS-файл, нажимаю «Сохранить», затем должен перезагрузить приложение [редакция: обновить страницу браузера] и ждать 5+ секунд, чтобы увидеть изменения.
Есть ли способ включить горячую перезагрузку (то есть автоматическое обновление локального представления) при разработке плагинов для Discourse на локальной машине?
Кажется, что CSS-файлы обновляются автоматически, но HTML/HBS или JS-файлы — нет.
Я говорю здесь о перезагрузке браузера и о том, доступна ли горячая перезагрузка, чтобы избежать этого. Именно перезагрузка браузера занимает более 5 секунд для отображения любых изменений.
Если мне нужно остановить и перезагрузить сервер (например, когда я изменяю plugin.rb), это, вероятно, занимает 60 секунд.
Горячая перезагрузка, конечно, является стандартом при разработке со многими технологиями сегодня (я наиболее знаком с Angular, где этот стандарт принят), и это отлично подходит для разработки. Я считаю, что с Rails это возможно через webpack (но не уверен в этом). Мне кажется, что горячая перезагрузка недоступна для разработки в Discourse, но я хотел уточнить, потому что было бы здорово, если бы она была доступна.
Звучит отлично, спасибо. Чтобы использовать это для локальной разработки, нужно ли мне что-то делать помимо загрузки последней версии Discourse с GitHub на мой компьютер?
Я с энтузиазмом обновил свой локальный экземпляр Discourse, и теперь у меня запущена версия 2.8 локально. Однако я пока не могу заставить hot reload работать для изменений в HTML и JS.
Вот как я запускаю всё:
Зайти в папку discourse локально
$ redis-server //запускает сервер
$ rails s//запускает приложение Rails
$ yarn//запускать это, по моему предположению, нужно только один раз
$ bin/ember-cli//запускает ember cli. Команда ember serve --proxy "http://localhost:3000" по какой-то причине выдавала мне ошибки
Это успешно запускает приложение на localhost:4200.
Я добавил плагин в локальный экземпляр Discourse, который успешно отображается на localhost:4200. Однако, если я вношу изменения в файлы HTML или JS, эти изменения отображаются в локально запущенном приложении только после обновления страницы в браузере.
Нужно ли мне сделать что-то ещё, чтобы hot reload работал?
Привет. Доступна ли горячая перезагрузка (hot-reload) с ember-cli в Discourse? У меня по-прежнему та же проблема, о которой я упоминал в предыдущем посте. Следуя этим инструкциям, я всё ещё не получаю hot-reload (то есть мне всё ещё нужно обновлять браузер, чтобы увидеть изменения в HTML и JavaScript, а вывод ember-cli в терминале, похоже, не реагирует, когда я нажимаю «Сохранить» после изменения файла).
Буду очень признателен за возможность использовать живую перезагрузку (особенно для файлов JavaScript). Когда я работаю в других средах, где живая перезагрузка является стандартом, она значительно ускоряет процесс разработки и делает его более увлекательным.
“livereload.js инициирует WebSocket-соединение обратно к Ember CLI. Это позволяет Ember CLI уведомлять браузер о необходимости перезагрузки после изменений в JavaScript или стилях.”
Меня интересует, почему браузер игнорирует это — не связано ли это с опцией браузера, касающейся безопасности сайта?
Я не уверен, но в других контекстах и с другими фреймворками мне точно удавалось настроить live reload в браузере. (Не уверен насчёт Ember — я использовал его только в рамках разработки для Discourse.)
Мне интересно, ожидается ли поддержка live reload. Судя по предыдущему обсуждению, кажется, что да. В таком случае, интересно, есть ли live reload у команды Discourse и делают ли они что-то, чего не делаю я.
Безусловно, было бы полезно получить официальное разъяснение относительно того, насколько должна работать функция автоматической перезагрузки в данном случае и выходит ли она за пределы CSS на стороне клиента.
Автоматическое обновление страницы обрабатывается ember CLI. В данный момент ресурсы тем и плагинов компилируются и обслуживаются приложением Rails, а не Ember CLI. Поэтому изменения в темах или плагинах не приводят к автоматическому обновлению страницы.
В будущем мы можем улучшить эту ситуацию. Но на данный момент такое поведение является ожидаемым.