Я пытаюсь использовать requireJS для добавления этой библиотеки/подключаемого модуля в jquery.
Я просмотрел документацию и другие вопросы, и я до сих пор не могу понять, что происходит.
Используя магистраль и требуйте в качестве примера: я уверен, что мне нужно использовать прокладку в файле main.js. Я также уверен, что мне нужно все еще загружать подключаемый модуль в конкретный файл, в который я хочу его использовать (хотя я фактически не использую объект rangyInputs в теле функции) (что я делаю для позвоночник). На самом деле, я просто хочу связать функции из библиотеки rangyInputs с jquery один раз, а затем просто потребовать jquery во всех файлах, в которых мне нужны эти функции.
define([
'jquery',
'underscore',
'backbone'
, 'views/listView'
, 'sockets'
, 'collections/nodesCollection'
, 'views/listView'
, 'models/node'
, 'rangyInputs' //I define the path to this like I do the path for backbone in main.js
],
function($, _, Backbone, ListView, io, nodesCollection, listView, nodeModel ,rangyInputs){
В этом нетипизированной библиотеке:
$.fn.extend({
getSelection: jQuerify(getSelection, false),
setSelection: jQuerify(setSelection, true),
collapseSelection: jQuerify(collapseSelection, true),
deleteSelectedText: jQuerify(deleteSelectedText, true),
deleteText: jQuerify(deleteText, true),
extractSelectedText: jQuerify(extractSelectedText, false),
insertText: jQuerify(insertText, true),
replaceSelectedText: jQuerify(replaceSelectedText, true),
surroundSelectedText: jQuerify(surroundSelectedText, true)
});
Документация и примеры использования "экспорта" для прокладки, но я не думаю, что могу использовать это, поскольку у меня есть несколько вещей, которые я экспортирую. (и я не совсем уверен, как работает экспорт).
Благодарю!
EDIT: Я попытался применить это решение, чтобы я мог включить другой плагин, и он не работал, поэтому я задал еще один вопрос здесь
Удалось создать простой рабочий пример:
index.html:
<!doctype html>
<html>
<head></head>
<body>
<script data-main="main" src="require.js"></script>
</body>
</html>
main.js:
require.config({
paths : {
jquery : 'jquery-2.0.3',
'rangyinputs-jquery' : 'rangyinputs-jquery-1.1.2'
},
shim : {
'rangyinputs-jquery' : {deps : ['jquery'], exports : '$'}
}
});
require(['jquery', 'rangyinputs-jquery'], function($) {
console.log('Type of $.fn.getSelection' typeof $.fn.getSelection);
});
последние версии jquery совместимы с AMD, поэтому вам не нужно использовать экспортную шину, но rangyinputs-jquery нет, поэтому мы экспортируем объект jquery и добавляем зависимость от jquery. все файлы в одном каталоге: