我有以下代码:
requirejs.config({
shim: {
'underscore': {
exports: '_'
},
'backbone': {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
}
}
});
define(
['underscore', 'backbone'],
function (underscoreLocal, backboneLocal) {
console.log(underscoreLocal);
console.log(backboneLocal);
console.log(_);
console.log(Backbone);
}
);
所有这些控制台记录都会打印出来。但是,我想知道是否可以从加载的模块中删除默认导出的模块名称,即。让'Backbone'和'_'在模块内返回undefined?它是否有可能与垫片,或者我只是认为这是错误的方式?
答案 0 :(得分:0)
我认为回调中的“_”和“Backbone”符号是由backbone.js在全局命名空间中定义的符号。 (它们应该是window._或window.Backbone)。
据我所知,synbols的“本地”版本由requirejs定义,因为你明确指定了“exports”变量名。
所以我认为你不能阻止定义全局版本。