2014-03-03 46 views
0

我的baseUrl目录中有一个名为“lib.jquery.js”的文件(所有库都以“lib。”开头,而不是可重复使用的应用程序模块以“app。”开头),并且模块定义:RequireJS - 更改jQuery模块名称

define([ 
    "lib.jquery" 
], 
function(
    jQuery 
){ 
    console.log(jQuery) // undefined 
}) 

但这里的jQuery是未定义因为jQuery模块名称里面硬编码为“jQuery的”,而不是“lib.jquery”。在请求“jquery”或强制jQuery模块命名为“lib.jquery”时,如何正确配置RequireJS以使所有加载模块检查“lib.jquery”文件?

回答

1

jquery脚本将模块定义为'jquery',并期望您将其简单地引用为'jquery'。这是因为不应该加载2个不同版本的jquery文件。

解决方法是将lib.*.js文件放入名为lib的单独目录中。

define(['lib/jquery'], function (jQuery) { 

}); 
0

我已经找到了解决办法在这里:Use requirejs and jquery, without clobbering global jquery?

  1. 重命名的文件lib.jquery.js到lib.jquery-core.js
  2. 创建文件lib.jquery.js用“的jQuery加载器模块“:

    define(['lib.jquery-core'],function(){ return jQuery.noConflict(true); });

现在它按预期工作。硬编码名称是邪恶的。