gpt4 book ai didi

backbone.js - RequireJs:使用带有 shim 的 autoloading-deps

转载 作者:行者123 更新时间:2023-12-04 05:32:57 25 4
gpt4 key购买 nike

我定义了一个 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"
}
}
});

如您所见,当我加载主应用程序(-命名空间)时,最后一个“垫片”声明应该使其能够访问主干(及其依赖)。

实际上这是行不通的:
require(["app"], function($, _, Backbone, App){
app.router = new Backbone.Router.extend({
// routing and route actions
});
});

让我想知道的是,在“backbone-boilderplate”项目中,Backbone(及其 deps)可以通过以下方式获得:
https://github.com/tbranyen/backbone-boilerplate/blob/master/app/main.js

甚至不必在函数中定义它。

那么我做错了什么?

最佳答案

删除 $, _, Backbone -参数来自 require - 扩展路由器的功能。垫片导出全局值,因此无需在 require 中引用它们。或 define像您对常规依赖项所做的调用一样。

将它们作为参数传递会混淆全局变量,并且很可能导致它们未定义。

关于backbone.js - RequireJs:使用带有 shim 的 autoloading-deps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11389715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com