2017-02-13 3 views
3

У меня довольно стандартное приложение Ring с некоторыми конечными точками Compojure RESTfull. У нас также есть приложение на основе Polymer, Bower и Gulp. Поэтому я подумал, что было бы неплохо распространять это приложение в одном пакете (что означает наличие сборки, которая в конечном итоге создаст WAR-файл, состоящий из как бэкэнд, так и frontend-части, который может быть загружен в любом месте без каких-либо других зависимостей).Использование Leiningen для создания интерфейса с помощью Gulp

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

P.S. Конечной целью является развертывание приложения в AWS, я уже делал это с помощью плагина elastic-beanstalk, и он казался мне довольно гладким (просто создайте WAR, передайте его плагину, и он позаботится обо всем остальном).

ответ

2

У меня есть проекты со сходством. Я избегал использовать leiningen/lein-plugins для создания интерфейса и вместо этого создавал его с помощью webpack, позволяя lein компилировать clojure в uberjar. Артефакты сборки из webpack были выведены на путь ресурсов, который был объявлен в project.clj и упакован в uberjar. Веб-сервер также был включен в uberjar и был настроен для обслуживания с этого пути. В качестве шаблона проекта я использовал luminus.

Кажется, вы могли бы сделать что-то подобное здесь. Используйте глоток, чтобы построить интерфейс и пакет в войну, которая может быть развернута на эластичном бобовом стебле. Мой скрипт сборки из package.json был следующим: npm install && NODE_ENV=production webpack -p && lein uberjar.

Таким образом, вам не нужно иметь плагин lein для создания вашего интерфейса. Мне было проще позволить другому инструменту создания сделать эту работу.

Смежные вопросы