我试图通过将jquery定义为依赖来加载jquery插件。
requirejs.config({
baseUrl: '/assets/',
paths: {
jquery: 'jquery',
jqueryujs: 'jquery_ujs',
jquerybackstretch: 'jquery.backstretch',
jquerysticky: 'sticky',
jquerydialog: 'jquery.ui.dialog',
app: 'index'
},
shim: {
'jqueryujs': {
deps: ['jqueryujs']
},
'jquerybackstretch': {
deps: ['jquerybackstretch']
},
'jquerysticky': {
deps: ['jquerysticky']
},
'jquerydialog': {
deps: ['jquerydialog']
},
'app': {
deps: ['app']
}
}
})
require(['jquery', 'jquerybackstretch', 'jqueryujs', 'jquerysticky', 'jquerydialog', 'app'], function($) {
})
以下是错误消息
Load timeout for modules: jquerybackstretch,jqueryujs,jquerysticky,jquerydialog,app
我是否正确加载了所有插件?还有其他加载插件的好方法吗?
答案 0 :(得分:1)
这不起作用的原因是您在填充程序中设置了循环依赖项。例如:
'jqueryujs': {
deps: ['jqueryujs']
}
这告诉RequireJS模块依赖于自身。据推测,你所拥有的名称中jquery
的所有模块都依赖于jQuery,所以我希望如此:
shim: {
'jqueryujs': {
deps: ['jquery']
},
'jquerybackstretch': {
deps: ['jquery']
},
'jquerysticky': {
deps: ['jquery']
},
'jquerydialog': {
deps: ['jquery']
}
}
我不知道这些模块是什么(大多数)所以我无法判断它们是否相互依赖。您应该检查它们是否存在并添加deps
设置所需的任何内容。
我不知道你的app
模块是什么。如果它是您自己创建的要加载RequireJS的模块,那么它应该使用适当的依赖项列表调用define
,并且您不需要填充它。