Комментарии 13
На любую view будет загружаться полная конфигурация всех WebJar'ов? Т.е. если библиотека используется только на одной какой-то view, мы её всё равно загрузим во всех? Я правильно понял?
0
Да, все правильно
Но можно делать кастомные конфиги
Вместо
пишем
Как видим в здесь цикл, который перебирает все WebJars, в него можно добавить filter и пропускать ненужные WebJars
Но можно делать кастомные конфиги
Вместо
@Html(org.webjars.RequireJS.getSetupJavaScript(routes.WebJarAssets.at("").url))
пишем
var require = {
callback: function() {
// default requirejs configs
@for(webJarJson <- org.webjars.RequireJS.getSetupJson(routes.WebJarAssets.at("").url).values()) {
requirejs.config(@Html(webJarJson.toString));
}
}
Как видим в здесь цикл, который перебирает все WebJars, в него можно добавить filter и пропускать ненужные WebJars
0
И кстати сразу хочу предупредить при добавлении AngularJS в качестве WebJars, сгенирится весьма внушительный конфиг
Если это вызывает особое раздражение, то разумеется лучше писать конфиг для RequireJS руками
Если это вызывает особое раздражение, то разумеется лучше писать конфиг для RequireJS руками
0
Мне не понятно зачем его вообще генерить? Я на темплейте делаю так
Где app это переменная, которая хранит путь до файла модуля. Сам файл например такой
И у меня на странице зависимости только те которые нужны.
И ещё один вопрос. А зачем ReqireJS явно указан в WebJars?
Насколько я помню RequireJS с определенной версии поставляется уже вместе с Play 2.
@Html(org.webjars.play.RequireJS.setup(app))
Где app это переменная, которая хранит путь до файла модуля. Сам файл например такой
'use strict';
require(['angular','bootstrap'],
function(angular) {
angular.module('cag', []);
angular.bootstrap(document, ['cag']);
});
И у меня на странице зависимости только те которые нужны.
И ещё один вопрос. А зачем ReqireJS явно указан в WebJars?
Насколько я помню RequireJS с определенной версии поставляется уже вместе с Play 2.
+2
А всё понял. По сути это всё одинаково. Однако у вас всё кэшированно и быстро.
0
По моему слегка изврат.
Создается впечатление что ребята которые работают только на бекенде вообще не хотят использовать очень хорошо обкатанные методики и подходы которые уже не первый год отлично работают в фронт-енде, вместо этого придумывая собственный велосипед.
Идея вытягивания js/css зависимостей из мавен репозитория мне решительно не нравиться, так как в случае более-менее сложных задач на фронт-енде будет очень не хорошо зависеть от того есть ли нужный WebJar или нет (список конечно очень большой но некоторых хороших библиотек я там не увидел, а зятягивать часть через WebJar а часть еще как-то — моветон)
Я бы посмотрел в сторону bower.io/ для решения такой задачи. тут ребята используют git репозитории для получения необходимых артефактов, в бовере храниться только регистр.
Также очень советую посмотреть на gulpjs.com/ или gruntjs.com/ и всевозможной обработки / минификации / обфускации / ужатия картинок / .
Создается впечатление что ребята которые работают только на бекенде вообще не хотят использовать очень хорошо обкатанные методики и подходы которые уже не первый год отлично работают в фронт-енде, вместо этого придумывая собственный велосипед.
Идея вытягивания js/css зависимостей из мавен репозитория мне решительно не нравиться, так как в случае более-менее сложных задач на фронт-енде будет очень не хорошо зависеть от того есть ли нужный WebJar или нет (список конечно очень большой но некоторых хороших библиотек я там не увидел, а зятягивать часть через WebJar а часть еще как-то — моветон)
Я бы посмотрел в сторону bower.io/ для решения такой задачи. тут ребята используют git репозитории для получения необходимых артефактов, в бовере храниться только регистр.
Также очень советую посмотреть на gulpjs.com/ или gruntjs.com/ и всевозможной обработки / минификации / обфускации / ужатия картинок / .
+5
Я бы сказал это очень изврат.
Но мне человеку далекому от фронтэнда не хватило бы терпения. Сейчас всяких штук в окончанием JS столько, что глаз коли. Вот если бы кто-нибудь сделал верно правильный template для activator, где было бы показано как эти все штуки подружить, я был бы очень рад. Сейчас я как раз активно работаю на стэке play/angular и да, не хватает многих плюшек. Например мне хотелось бы весь фронтэнд как-то отделить от бэкэнда и каким-либо образом покрыть хотя бы минимально тестами. Но вот так и живем. Кто во что горазд, гром их порази.
Но мне человеку далекому от фронтэнда не хватило бы терпения. Сейчас всяких штук в окончанием JS столько, что глаз коли. Вот если бы кто-нибудь сделал верно правильный template для activator, где было бы показано как эти все штуки подружить, я был бы очень рад. Сейчас я как раз активно работаю на стэке play/angular и да, не хватает многих плюшек. Например мне хотелось бы весь фронтэнд как-то отделить от бэкэнда и каким-либо образом покрыть хотя бы минимально тестами. Но вот так и живем. Кто во что горазд, гром их порази.
0
npm
npm can be used as well as WebJars by declaring a package.json file in the root of your project. Assets from npm packages are extracted into the same lib folder as WebJars so that, from a code perspective, there is no concern whether the asset is sourced from a WebJar or from an npm package.
Гласит документация Play Framework
Нужно будет поэкспериментировать в этом плане
npm can be used as well as WebJars by declaring a package.json file in the root of your project. Assets from npm packages are extracted into the same lib folder as WebJars so that, from a code perspective, there is no concern whether the asset is sourced from a WebJar or from an npm package.
Гласит документация Play Framework
Нужно будет поэкспериментировать в этом плане
0
и можно еще настроить бридж между gulp/grunt и maven/sbt
0
есть примеры?
+1
На github'e думаю их довольно много, примеров.
У меня например, на одном проекте используется grunt-maven-plugin, с SBT к сожалению не интегрировал, из-за ненадобности, со всем пока play справляется, но по запросу 'sbt grunt plugin' там целых три штуки, возможно и примеры там есть.
У меня например, на одном проекте используется grunt-maven-plugin, с SBT к сожалению не интегрировал, из-за ненадобности, со всем пока play справляется, но по запросу 'sbt grunt plugin' там целых три штуки, возможно и примеры там есть.
0
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
WebJars + RequireJS