Выполнение минимизации r.js с помощью webjars
Наша команда пишет приложение клиент-сервер, где интерфейсом является одностраничное приложение Angular.js, использующее Java-бэкэнд Spring MVC. Бэкэнд обслуживает файлы приложения и конечные точки REST, используемые браузером. Мы используем Maven в качестве основной системы сборки приложения.
Мы хотели бы использовать в своих интересах require.js и r.js для минимизации приложения в конце, и мы также используем управление зависимостями на стороне клиента. В настоящее время мы используем bower для загрузки необходимых библиотек Javascript, но я не считаю правильным загружать клиентские зависимости в src / main / webapp, поскольку это исходная папка. Однако, чтобы избежать перестройки всего модуля внешнего интерфейса каждый раз, когда что-то меняется в клиентских файлах, это кажется нам единственным разумным способом. Таким образом, мы можем запустить веб-сервер, и он будет автоматически принимать изменения без перезапуска, но, как я уже сказал, это не соответствует макету папок Maven.
Я экспериментирую с Webjars, который кажется лучшим выбором в нашей Maven-ориентированной сборке и управлении зависимостями. Поскольку в контейнерах Servlet 3.0 ресурсы webjar предоставляются автоматически по пути контейнера сервера, их очень легко использовать и управлять ими. Также возможно создать конфигурацию require.js для ссылки на библиотеки, содержащиеся в веб-файлах, так как они находятся по пути веб-сервера таким же образом, если бы они были статическими файлами, обслуживание выполняется прозрачно с точки зрения клиентских приложений.
Моя единственная проблема в том, что я не знаю, как мы можем добиться минимизации r.js с помощью этого макета, поскольку исходные файлы находятся в jar-файлах, а r.js не может получить к ним доступ. Конфигурация require.js также относится к путям сервера времени выполнения, которых просто нет во время сборки.
Я вижу, что веб-файлы теперь имеют некоторую интеграцию с Require.js + Play Framework, но в нашем случае мы не используем Play просто Spring Spring MVC. Я действительно надеюсь, что есть способ справиться с этим делом, потому что мне нравится Webjar способ обработки клиентских зависимостей.
1 ответ
Вам нужен компилятор / конвейер ресурсов в процессе сборки. Вероятно, есть много вариантов, но я знаю wro4j: http://alexo.github.io/wro4j/