Javascript 如何使用requirejs覆盖供应商库
我使用的是Marionette.js框架,我需要覆盖Marionette.TemplateCache模块的一个函数,但不更新Marionette.js文件。 因此,我为此创建了一个新模块: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
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将加载原始木偶网
,并返回自定义实例
另外,如果需要,您仍然可以使用木偶核心
在其他地方加载原始库谢谢您的回答。您的解决方案运行良好,但我不满意,因为它不是模块化解决方案。如果我们需要在另一个文件中定义另一个插件,我们必须在这个插件和我不想要的插件之间有一个依赖关系。