我刚刚开始使用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'
}
});
正如我所说,这不会一直发生,只是随机发生。有人能看出我做错了什么,或者我怎么能找到问题?
由于
答案 0 :(得分:11)
在配置的这一部分:
bootstrap : {
dep : [ 'jquery'],
应该{{1}}而不是deps
。使用dep
,就好像您根本没有指定任何依赖项一样,这意味着只有在jQuery 发生之前加载它才能正常加载Bootstrap。 (另外,Bootstrap没有定义dep
符号,因此Bootstrap
位无用。)