2014-02-20 342 views
2

20%的時間,腳本在使用RequireJS時無法加載。RequireJS並不總是加載模塊

通過應用程序使用的附加文件除了需要JS庫之外,還需要base.js文件,其中包含配置和一些下劃線&主幹的設置。沒有這些設置,其他文件將無法工作。

在該腳本標籤如下:

<script data-main="http://*path*/js/common" src="http://*path*/js/lib/require.js"></script> 

的common.js文件是

requirejs.config({ 
    shim: { 
     underscore: { 
      exports: "_" 
     }, 
     backbone: { 
      deps: ["jquery", "underscore"], 
      exports: "Backbone" 
     }, 
     base: { 
      deps: ["backbone"] 
     } 
    }, 
    paths: { 
     jquery: [ 
      '//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min', 
      'http://*path*/media/admin/js/lib/jquery.min' 
     ], 
     base: 'http://*path*/media/admin/js/base', 
     backbone: 'http://*path*/media/admin/js/lib/backbone', 
     underscore: 'http://*path*/media/admin/js/lib/underscore' 
} 

});

的base.js文件,與骨幹網的設置,下劃線和jQuery,包含:

define(['jquery', 'backbone', 'underscore'], function(jQuery, Backbone, _) { 
    //CODE 
    return var; 
}); 

而另一個文件包含

define(['base'], function(var) { 
    //CODE 
}); 

在我使用的加載文件的頁面:

require(['common'], function() { 
    require(['page/file'], function() { 
     //CODE 
    }); 
}); 

我在做什麼錯,爲什麼jQuery,下劃線和骨幹網有時會加載失敗nd我該如何解決這個問題?

的錯誤信息是:

GET http://*host*/backbone.js 404 (Not Found) require.js:1 

Uncaught Error: Script error for: backbone 
http://requirejs.org/docs/errors.html#scripterror 
+2

你爲什麼要返回var?當然這會導致錯誤? –

+0

你能發佈確切的錯誤信息嗎? –

回答

2

我不知道,這是唯一的問題但墊片應刪除:

base: { 
    deps: ["backbone"] 
} 

你所示base.js文件那叫define。規則很簡單:如果你的模塊調用define,然後使用define設置的依賴,並傳遞給define函數的返回值來設置模塊的價值;如果您的模塊不是而是請致電define,那麼您需要一個墊片來設置依賴關係並確定模塊的值(如果需要)。