Javascript RequireJs shim:如何防止define(){…}中的模块名重复?
我有以下代码:Javascript RequireJs shim:如何防止define(){…}中的模块名重复?,javascript,requirejs,Javascript,Requirejs,我有以下代码: requirejs.config({ shim: { 'underscore': { exports: '_' }, 'backbone': { deps: ['underscore', 'jquery'], exports: 'Backbone' } } }); define( ['underscore', 'bac
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);
}
);
所有这些控制台日志都会打印一些东西。但是,我想知道是否有可能从加载的模块中删除默认导出的模块名,即在模块内部有未定义的“主干”和“返回”?使用shim是否有可能,或者我只是想错了吗?我认为回调中的“uu”和“Backbone”符号是Backbone.js在全局命名空间中定义的符号。(它们应该是window.\或window.Backbone)
据我所知,synbols的“本地”版本是由requirejs定义的,因为您明确指定了“exports”变量名
因此,我认为您无法阻止定义全局版本