我已經定義了一個RequireJs配置定義路徑和墊片:RequireJs:使用自動加載-DEPS與墊片
require.config({
// define application bootstrap
deps: ["main"],
// define library shortcuts
paths: {
app: "app"
, jquery: "lib/jquery"
, underscore: "lib/underscore"
, backbone: "lib/backbone"
, bootstrap: "lib/bootstrap"
},
// define library dependencies
shim: {
jquery: {
exports: "$"
},
underscore: {
exports: "_"
},
backbone: {
deps: ["underscore", "jquery"],
exports: "Backbone"
},
bootstrap: {
deps: ['jquery'],
exports: "bootstrap"
},
// main application
app: {
deps: ["backbone"],
exports: "App"
}
}
});
正如你看到的最後一個「墊片」的聲明應該使它能夠訪問骨幹(和它的DEP )當我加載主App(-namespace)。
在現實中,這並不工作:
require(["app"], function($, _, Backbone, App){
app.router = new Backbone.Router.extend({
// routing and route actions
});
});
令我疑惑的是,在「脊樑 - boilderplate」 - 項目,骨幹(及其DEPS)可供選擇這種方式: https://github.com/tbranyen/backbone-boilerplate/blob/master/app/main.js
甚至不必在函數中定義它。
那麼我做錯了什麼?
嘗試從擴展路由器的'require'函數中刪除'$,_,Backbone'。我認爲墊片的工作,以便他們只出口您不需要添加到任何調用的全局值 – jakee 2012-07-09 12:26:23
嘿,這很好:)我甚至可以在定義函數的deps數組中刪除「主幹」關鍵字雖然這在每個模塊中都不起作用......您是否會創建一個答案,以便我可以解決這個問題? – 2012-07-09 14:37:55
完成,很高興我能幫助! – jakee 2012-07-09 15:06:09