RequireJS - 更改jQuery模块名称

时间:2014-03-03 08:08:14

标签: javascript jquery requirejs

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

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

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

2 个答案:

答案 0 :(得分:1)

jquery脚本将模块定义为“jquery”,并期望您只需将其引用为“jquery”。这样做是因为不应该加载2个不同版本的jquery文件。

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

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

});

答案 1 :(得分:0)

我在这里找到了解决方案:Use requirejs and jquery, without clobbering global jquery?

  1. 将文件lib.jquery.js重命名为lib.jquery-core.js
  2. 使用“jquery loader module”创建文件lib.jquery.js:

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

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