我有一个使用RequireJS的Backbone应用程序。不知怎的,我总是得到错误 -message Uncaught ReferenceError: $ is not defined
,所以我想我没有正确加载我的库。
我的RequireJS配置如下:
require.config({
paths: {
// Core libraries.
jquery: 'lib/jquery/jquery',
backbone: 'lib/backbone/backbone',
// Templating.
handlebars: 'lib/handlebars/handlebars',
// Plugins.
text : 'lib/requirejs-text/text',
less: 'lib/require-less/less',
lodash: 'lib/lodash/lodash.min',
all: 'lib/all/all',
imageload: 'lib/imageload/jquery.imagesloaded',
selectivizr: 'lib/selectivizr/selectivizr-min',
modernizr: 'lib/modernizr/modernizr.min',
jqueryEffects: 'lib/jquery/jquery.effects',
// App folders.
collections: 'app/collections',
models: 'app/models',
routers: 'app/routers',
templates: 'app/templates',
views: 'app/views'
},
shim: {
backbone: {
deps: ['jquery', 'lodash', 'all', 'selectivizr', 'modernizr', 'less', 'jqueryEffects'],
exports: 'Backbone'
},
lodash: {
exports: '_'
},
handlebars: {
exports: 'Handlebars'
}
}
});
我将<script data-main="js/config" src="js/lib/requirejs/require.js"></script>
放在索引页的<body>
标记内。
那么这个问题是什么?
答案 0 :(得分:0)
“未捕获的ReferenceError:$未定义”
您收到此错误是因为您使用的是需要jQuery的内容,而您之前没有加载过jQuery。
你可能已经加载了jQuery,但它似乎没有在适当的时候加载。
您使用了很多插件,因此将shim配置添加到使用jQuery的所有非AMD插件。
查看在jquery之前加载了哪个jquery插件,以便找到根本原因。