1

我有以下代码:

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'和'_'在模块内返回未定义?甚至可以使用垫片,还是我只是想错了?

4

1 回答 1

0

我认为回调中的“_”和“Backbone”符号是由backbone.js 在全局命名空间中定义的符号。(它们应该是 window._ 或 window.Backbone)。

据我了解,synbols 的“本地”版本是由 requirejs 定义的,因为您明确指定了“导出”变量名。

所以我认为你不能阻止定义全局版本。

于 2013-04-18T14:49:24.130 回答