Intersttent" Bootstrap的JavaScript需要jQuery"错误

时间:2014-05-22 18:02:26

标签: javascript requirejs

我刚刚开始使用requirejs,我遇到了一个我似乎无法解决的问题。当我加载我的应用程序时,我偶尔会收到错误“Bootstrap的JavaScript需要jQuery”。以下是相关文件:

.HTML

<html>
<head>
<link href="./css/bootstrap.min.css" rel="stylesheet">
<link href="./css/custom.css" rel="stylesheet">
<script data-main="scripts/main" src="scripts/vendor/require.js"></script>
</head>
<body>
...
</body>

来自main.js文件的require.config:

requirejs.config({
    baseUrl : './scripts',
    shim : {
        underscore : {
            exports : '_'
        },

        bootstrap : {
            dep : [ 'jquery'],
            exports: 'Bootstrap'
        },

        backbone : {
            deps : [ 'jquery', 'underscore' ],
            exports : 'Backbone'
        },

        marionette : {
            deps : [ 'jquery', 'underscore', 'backbone' ],
            exports : 'Marionette'
        },

        text: {
            deps : [ 'jquery', 'underscore', 'backbone' ],
            exports: 'Text'
        }
    },

    paths : {
        jquery : 'vendor/jquery.min',
        underscore : 'vendor/underscore',
        bootstrap : 'vendor/bootstrap.min',
        backbone : 'vendor/backbone',
        marionette : 'vendor/backbone.marionette',
        text: 'vendor/text'
    }
});

正如我所说,这不会一直发生,只是随机发生。有人能看出我做错了什么,或者我怎么能找到问题?

由于

1 个答案:

答案 0 :(得分:11)

在配置的这一部分:

bootstrap : {
            dep : [ 'jquery'],

应该{​​{1}}而不是deps。使用dep,就好像您根本没有指定任何依赖项一样,这意味着只有在jQuery 发生之前加载它才能正常加载Bootstrap。 (另外,Bootstrap没有定义dep符号,因此Bootstrap位无用。)