Javascript 如何使用requirejs覆盖供应商库

Javascript 如何使用requirejs覆盖供应商库,javascript,backbone.js,module,requirejs,marionette,Javascript,Backbone.js,Module,Requirejs,Marionette,我使用的是Marionette.js框架,我需要覆盖Marionette.TemplateCache模块的一个函数,但不更新Marionette.js文件。 因此,我为此创建了一个新模块: define(['marionette'], function (Marionette) { 'use strict'; _.extend(Marionette.TemplateCache.prototype, { loadTemplate: function(tem

我使用的是Marionette.js框架,我需要覆盖Marionette.TemplateCache模块的一个函数,但不更新Marionette.js文件。 因此,我为此创建了一个新模块:

    define(['marionette'], function (Marionette) {
    'use strict';

    _.extend(Marionette.TemplateCache.prototype, {
        loadTemplate: function(templateId){

            var template = templateId;

            if (!template || template.length === 0){
                throwError("Could not find template: '" + templateId + "'", "NoTemplateError");
            }

            return template;
        }
    });
    return Marionette;
});
但是,我不知道如何配置我的requirejs main,因为当我加载Marionette.js框架时,我的模块会覆盖Marionette.js

你知道怎么做吗

谢谢


Jonathan。

您可以将为原始库定义的路径重命名为类似于
木偶核心的路径,并按如下方式更新模块

define(['marionette-core'], function (Marionette) {
'use strict';

   _.extend(Marionette.TemplateCache.prototype, {
    loadTemplate: function(templateId){

        var template = templateId;

        if (!template || template.length === 0){
            throwError("Could not find template: '" + templateId + "'", "NoTemplateError");
        }

        return template;
    }
  });

  return Marionette;
});
现在将模块的路径定义为
木偶

因此,现在当您需要
木偶网
时,require.js将加载原始
木偶网
,并返回自定义实例


另外,如果需要,您仍然可以使用
木偶核心
在其他地方加载原始库

谢谢您的回答。您的解决方案运行良好,但我不满意,因为它不是模块化解决方案。如果我们需要在另一个文件中定义另一个插件,我们必须在这个插件和我不想要的插件之间有一个依赖关系。