2014-03-03 45 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); });

現在它按預期工作。硬編碼名稱是邪惡的。