我有以下代码作为研究问题的示例。在此代码" js1和js2加载"永远不会被调用,也没有错误。我试图调试以记录requirejs中的任何错误,但找不到根本原因。
require.config({
paths: {
jQuery : "jquery",
underScore : "underscore-min",
backBone : "backbone-min",
js1 : "js",
js2: "js"
},
shim: {
'jQuery': {
exports: '$'
},
'underScore': {
exports: '_'
},
'backBone': {
deps: ['underScore', 'jQuery'],
exports: 'Backbone'
}
},
waitSeconds: 0
});
require(["jQuery"], function(){
require(["underScore"], function(){
require(["backBone"], function(){
require(["js1","js2"], function(){
console.log('js1 and js2 loaded');
});
});
});
});
答案 0 :(得分:2)
您没有收到任何错误,因为您已设置waitSeconds: 0
,这会禁用RequireJS'超时。请参阅documentation。
使用paths
来完成这项工作。为了能够以两个不同的名称加载相同的实际模块,您需要使用map
:
map: {
"*": {
js2: "js1"
}
}
请注意,这不会创建模块的两个实例。如果您比较需要js1
和js2
时获得的模块对象,您将看到它们是同一个对象。如果你想要做的是获得一个对象的多个实例,你应该设计你的代码用于这种用法。