我已经定义了一个RequireJs结构,其限定路径和垫片:
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),当我加载主应用程序( - 命名)。
在现实中,这不工作:
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
偶没有在功能定义此。
所以我在做什么错?