Требуется один модуль из связанной библиотеки (т.е. jquery-ui)
Я создаю приложение с помощью Durandal, что означает, что я использую requirejs
, Я решил использовать могучий knockout-sortable
плагин. Оказывается, он использует jquery-ui
особенности внутри, что приятно. Я также определил весь jquery-ui
пакет в моем приложении, поэтому в моем requirejs
Конфигурация это фигурирует как
"jqueryui": "../Scripts/jquery-ui-1.10.3.custom",
Более того, автор плагинов использует загрузку AMD, чтобы получить jquery.ui.sortable
и вот проблема. jquery-ui
кажется, не определяет себя с requirejs
, ни весь пакет, ни отдельные модули.
Должен ли я импортировать какой-либо модуль из jquery-ui
отдельно и для каждого определения пути в requirejs
конфиг, так что он явно виден или есть способ сказать requirejs
что уже есть это jquery.ui.sortable
модуль вокруг внутри jquery-ui
что плагин просит?
1 ответ
Вы должны иметь возможность установить простой псевдоним, используя path
конфиг requirejs
paths: {
'jquery.ui.sortable': 'jquery-ui'
}
Или, если это не сработает, вы можете использовать map
конфиг
map: {
'*': {
'jquery.ui.sortable': 'jquery-ui'
}
}
Или при использовании map
, вы могли бы даже настроить псевдоним для этого одного плагина
map: {
'THE-JQUERY-UI-PLUGIN-ID': {
'jquery.ui.sortable': 'jquery-ui'
}
}
Этот последний делает так, что когда рассматриваемый плагин делает require("jquery.ui.sortable")
назвать это на самом деле тянет jquery-ui
модуль, который вы знаете, имеет встроенную сортируемую функциональность.
Там также существует jquery-ui-amd
проект, который мне очень нравится использовать. Этот проект конвертирует все jquery-ui
модули в отдельные модули AMD https://github.com/jrburke/jqueryui-amd. Вы можете использовать это для более легкой и более модульной интеграции в ваш проект. Тем не менее, даже тогда вам понадобится псевдоним, так как ваш плагин требует jquery.ui.sortable
, но в jquery-ui-amd
идентификатор будет jquery-ui/sortable
,