我的jQuery库正在加载,但是我为我导入的任何其他模块收到了未定义的错误。他们中的大多数都有一个jQuery依赖项,我可以使用它。有人可以告诉我为什么我的所有其他模块都是未定义的吗?
requirejs.config({
baseUrl: 'js',
shim: {
'jqueryui': ['jquery'],
'dynatree': ['jquery'],
'noty' : ['jquery']
},
paths: {
jquery: 'vendor/jquery',
jqueryui: 'vendor/jqueryui',
dynatree: '../includes/dynatree/jquery.dynatree.min',
jsPlumb: '../includes/jsPlumb/dist/js/jquery.jsPlumb-1.5.5-min',
noty: '../includes/noty/packaged/jquery.noty.packaged.min'
}
});
requirejs(['jquery', 'jqueryui', 'dynatree', 'jsPlumb', 'noty'],
function ( $, jqueryui, dynatree, jsPlumb, noty ) {
console.log('hello', $, noty, jsPlumb, dynatree);
});
答案 0 :(得分:1)
jquery ui
不导出任何内容,它使用相同的jquery
符号。我会说这同样适用于其他库。
即使在他们输出某些内容的情况下,它也无法正常工作,因为您没有为垫片设置导出符号。这里有一个带导出的垫片的例子
shim: {
'backbone': {
deps: ['underscore', 'jquery'],
//Once loaded, use the global 'Backbone' as the module value.
exports: 'Backbone'
},
}
我会用
替换你的代码requirejs(['jquery', 'jqueryui', 'dynatree', 'jsPlumb', 'noty'],
function ($) { // $ is the only symbol that needs to be used
});