У меня есть приложения Backbone, в которых я использую RequireJS. Почему-то я всегда получаю сообщение об ошибке 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>
своей индексной страницы.
Так в чем здесь проблема?
shim: {backbone:{deps:[]}}
, ошибка исчезает... Но хотя jQuery всегда загружается как первый скрипт, я не понимаю... странно - person SHT   schedule 22.01.2014define
сам по себе, либо вам нужно будет установить для него прокладку, напримерjqueryEffects: { deps: [ 'jquery'] }
. - person Louis   schedule 23.01.2014