2011-05-26 41 views
2

以下main.js代碼不尊重優先順序(有時underscore.jsbackbone.js需要它的時候沒有加載):Requirejs'爲了不與優先級的配置工作,CDN依賴性

require({ 
    baseUrl:'/scripts', 
    priority:[ 
     "http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js", 
     "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js", 
     "http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.6/underscore-min.js", 
     "http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js" 
    ] 
    },["src/app"], 
    function (app) { 
     app.start(); 
}); 

那些CDN之前添加order!依賴關係失敗,出現order.js not found錯誤。

回答

6

我最近更新的RequireJS文檔,但我沒有推換到現場尚未:

「優先級」的配置無法加載插件被加載的資源。因此,要完成什麼你正在嘗試做的,你可以窩要求()調用,它會給你的行爲,你想:

require(
    { 
     baseUrl:'/scripts' 
    }, 
    [ 
     "require", 
     "order!http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js", 
     "order!http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js", 
     "order!http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.6/underscore-min.js", 
     "order!http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js" 

    ], 
    function (require) { 
     require(["src/app"], function (app) { 
      app.start(); 
     }); 
    } 
); 

這裏假設你有在/scripts/order.js順序插件位置。

+0

這很好。用CDN地址導入'order'插件和'RequireJS'也是可能的嗎? – 2011-05-27 08:03:15

+0

好聽。我目前還不知道order.js和require.js都在CDN上,儘管我在1.0版本發佈後至少想要提供require.js。 require.js位於http://www.cdnjs.com上,但我沒有任何關於它如何可靠的數據或支持該CDN的人員的任何數據。我喜歡他們想要做的事情。 – jrburke 2011-05-27 17:07:29

+0

爲什麼你需要嵌套的需求調用?我們不能在依賴數組中包含order!src/app嗎?謝謝 – simao 2011-08-10 14:33:47