我正在使用r.js尝试通过在我的主应用程序文件上运行r.js来编译我的require JS应用程序:
$ r.js js/bootstrap.js
但是,我在使用jQuery时遇到错误:
Error: Evaluating www/js/lib/jquery_plugins/slider.js as module "slider" failed with error: ReferenceError: jQuery is not defined
所以我知道这是因为我的滑块插件中引用了jQuery,但我认为这可以通过在我的bootstrap.js文件中添加jQuery作为垫片来解决,该文件看起来像这样:
// Require JS bootstrap file
require.config({
paths: {
jquery: 'lib/jquery',
backbone: 'lib/backbone',
backboneLocalStorage: 'lib/backbone.localStorage',
underscore: 'lib/underscore',
util: 'lib/util',
config: 'config',
lang: 'lang',
hammer: 'lib/hammer',
moment: 'lib/jquery_plugins/moment',
slider: 'lib/jquery_plugins/slider'
},
shim: {
jquery: {
exports: '$'
},
underscore: {
exports: '_'
},
backbone: {
deps: ['underscore'],
exports: 'Backbone'
},
hammer: {
deps: ['jquery'],
exports: 'Hammer'
}
}
});
// load the app
require(['app'], function(App) {
if(navigator.userAgent.indexOf("Chrome")) {
// then I am running on my local host on chrome
// so force device ready
onDeviceReady();
}
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
App.initialize();
}
});
我尝试将导出更改为jQuery而不是$,但这似乎没有改变任何内容。
答案 0 :(得分:0)
在垫片下,您尚未指定滑块和放大器的依赖关系。时刻。
请检查滑块和滑块时刻出口:)
shim: {
jquery: {
exports: '$'
},
underscore: {
exports: '_'
},
backbone: {
deps: ['underscore'],
exports: 'Backbone'
},
hammer: {
deps: ['jquery'],
exports: 'Hammer'
},
slider: {
deps: ['jquery'],
exports: 'slider'
},
moment: {
deps: ['jquery'],
exports: 'moment'
}
}