Backbone.js require.js加载引导未定义

Backbone.js require.js加载引导未定义,backbone.js,twitter-bootstrap,requirejs,amd,Backbone.js,Twitter Bootstrap,Requirejs,Amd,我的main.js如下所示 requirejs.config({ //By default load any module IDs from ../js baseUrl: '../js', paths : { 'jquery': 'libs/jquery', 'underscore': 'libs/underscore', 'backbone': 'libs/backbone', 'bootstrap': 'libs/bootstrap' }, shim: {

我的main.js如下所示

requirejs.config({
//By default load any module IDs from ../js
baseUrl: '../js',
paths : {
    'jquery': 'libs/jquery',
    'underscore': 'libs/underscore',
    'backbone': 'libs/backbone',
    'bootstrap': 'libs/bootstrap'
},
shim: {
    'jquery': {
        exports: '$'
    },
    'backbone': {
        //These script dependencies should be loaded before loading
        //backbone.js
        deps: ['jquery', 'underscore'],
        //Once loaded, use the global 'Backbone' as the
        //module value.
        exports: 'Backbone'
    },
    'underscore': {
        exports: '_'
    },
    'bootstrap': {
        deps: ['jquery'],
        exports: 'Bootstrap'
    }
}
});
define(
    ['jquery', 'backbone','underscore', 'bootstrap'],

    function (j, b,  u, boot) {
        console.log('jquery', j);
        console.log('backbone', b);
        console.log('underscore',u);
        console.log('bootstrap', boot);
    }
); 
我的控制台图像如下:


当我点击X登录警报时,它们消失了。因此,我认为bootstrap.js加载正确。但是,它在控制台中表示未定义。有人能告诉我bootstrap.js是否正确加载且使用安全吗?为什么它说未定义,而其余的则在控制台中定义得很好。

作为
jquery
backbone
,和
下划线
导出全局变量以在其他地方使用,而
引导
只会获取
现有jquery对象
,并将插件添加到该对象中,因此它不会输出任何东西

因此,如果您试图在
define
回调中接收它,理想情况下,它将是
undefined
。如果您在页面上使用了任何
引导组件
,并且该组件正常工作,则表示引导已集成

来自requirejs

对于仅为jQuery或主干插件且不需要导出任何模块值的“模块”,垫片配置可以只是一组依赖项:

requirejs.config({
  shim: {
    'bootstrap': ['jquery']
  }
});

因此,如果您愿意,您可以像文档中指定的那样声明bootstrap。

可能是因为所有
jquery
backbone
下划线
创建(导出)全局变量,而
bootstrap
只会向现有的
jquery
对象添加插件,不会全局导出任何内容,因此,在define回调中不会收到任何内容。@Cyclone,因此,从技术上讲,我以后对引导库没有任何问题。是的,如果您在页面上使用了任何引导功能,并且它正常工作,您不应该有:)