使用requireJS for plugin将多个函数导出到jquery

我正在尝试使用requireJS 将此库/插件添加到jquery。

我看过文档和其他SO问题,我仍然无法弄清楚出了什么问题。

使用backbone和require作为例子:我很确定我需要在main.js文件中使用shim。 我也很确定我还需要在我想要使用的特定文件中加载插件(即使我实际上并没有在函数体中使用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) }); 

文档并举例说明了使用shim的“exports”,但我不认为我可以使用它,因为我有多个我要导出的东西。 (而且我不确定出口是如何运作的)。

谢谢!

编辑:我尝试应用此解决方案,以便我可以包含一个不同的插件,它不起作用,所以我在这里问另一个问题

管理创建简单的工作示例:

index.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兼容的,所以你不必使用exports shim,但rangyinputs-jquery不是,所以我们导出jquery对象并向jquery添加依赖。 一个目录中的所有文件:

  • 的index.html
  • main.js
  • jQuery的2.0.3.js
  • rangyinputs-jQuery的1.1.2.js
  • require.js