2017-01-08 3 views
0

Я пытаюсь перейти от grails 2 к grails 3, поэтому я должен использовать плагин для конвейера для управления файлами java-скриптов. Проблема в том, что я использую пару внешних библиотек, например. globalize, ajax-solr. Они довольно большие и имеют несколько файлов, которые зависят друг от друга. Они также имеют много зависимостей от jquery и много используют пространства имен. Поэтому, когда я просто копирую их в asset/javascript, я получаю много исключений в консоли, например.Грайл-конвейер ресурсов и внешняя библиотека JS

Uncaught ReferenceError: AjaxSolr is not defined 
Uncaught ReferenceError: jQuery is not defined 
ParameterHashStore.js:13 Uncaught TypeError: Cannot read property 'extend' of undefined 

Первый вопрос, где должны быть размещены эти библиотеки? в asset/javascript в подпапках? Или в asset/lib, как предлагает документация? (Общая папка, которая добавляется в этот набор организации, представляет собой папку «lib». Эта папка может быть полезна при организации сторонних библиотек, таких как jQuery или Bootstrap. - http://www.asset-pipeline.com/manual/). Если да, как заставить плагин активов забрать его оттуда?

Второй способ решения проблем с зависимостями? Должен ли я модифицировать файлы globalize и ajax-solr с директивой //= require?

ответ

0

Мне удалось заставить его работать. Я поместил Globalize в lib папке (grails-app/assets/lib/globalize/) и создал файл globalize-manifest.js со всем импортом:

//= require globalize/lib/globalize 
//= require globalize/lib/cultures/globalize.culture.pl-PL.js 
... 

тогда, когда мне нужно использовать глобализацию импортировать его с помощью

// require globalize-manifest 
Смежные вопросы