Как использовать figwheel с обработчиком колец, который является компонентом?

Я бы хотел использовать figwheel, чтобы перезагрузить интерфейс полностью закрытого проекта, с которым я играю.

Бэкэнд обслуживает REST API и организован как набор компонентов, из которых я создаю систему в своем main функция (я использую воздуховод для создания компонента обработчика). Я хочу передать состояние своим обработчикам с помощью замыканий, но единственным способом настройки figwheel для использования моего обработчика, похоже, является установка ключа обработчика кольца в project.clj, и это требует, чтобы я передал обработчик, который определен в пространстве имен в lein время запуска

Итак, есть ли способ настроить figwheel при запуске моего компонента? Я все еще очень новичок в Closure, так что, скорее всего, я что-то упускаю из виду.

Передача состояния в качестве параметра обработчику звонка? это похожий вопрос, но ответ там включает в себя привязку обработчика var на верхнем уровне пространства имен, которого я пытаюсь избежать.

1 ответ

Figwheel не должен быть обработчиком. Вы можете обернуть компонент, который автоматически собирается, когда ваш сервер запущен и работает, разбивая этот код на компонент, зависимость от вашего серверного компонента, чтобы он запускался первым. Обратите внимание, что это официально не поддерживается. Бег lein figwheel из оболочки для загрузки отдельной JVM это обычное использование.

Если вы используете компонент Stuarts lib, я бы порекомендовал заключать обработчик кольца в компоненте сервера, а не в project.clj. Используйте этот проект или адаптируйте фрагмент кода для компонента причала.

Обратите внимание, что figwheel является devtooling, поэтому в производственной среде вы, скорее всего, захотите использовать скомпилированный файл js, созданный, например, с помощью lein-cljsbuild.

Джеймс Ривз сделал компонент для фигового колеса здесь

Duct-Figwheel-Component Компонент для средства разработки Figwheel, разработанный для использования в каркасе воздуховода (но может использоваться в любой системе на основе компонентов).

Монтаж

Добавьте следующую зависимость в ваш project.clj:

[duct/figwheel-component "0.3.3"]

Другие вопросы по тегам