javascript - 如何使用 requirejs 覆盖 vendor 库

标签 javascript backbone.js module requirejs marionette

我使用 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。

你有什么想法吗?

谢谢。

乔纳森。

最佳答案

您可以将为原始库定义的路径重命名为类似marionette-core 的路径,并按如下方式更新您的模块

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;
});

现在将您的模块的路径定义为 marionette

所以现在当你需要 marionette 时,require.js 将加载原始的 marionette 并返回你的自定义实例。

此外,如果需要,您仍然可以在其他地方使用 marionette-core 加载原始库

关于javascript - 如何使用 requirejs 覆盖 vendor 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33165399/

相关文章:

javascript - Backbone : reverse string comparator

javascript - Collection.create 中出现错误 : Uncaught Error: A "url" property or function must be specified

javascript - 无法从 CakePHP 3 中的 AJAX 请求获取数据

javascript - 单击按钮时加载外部 JavaScript

javascript - Jquery 跳到最后一个 XML 子级

ruby - 什么时候用模块,什么时候用类

python - 导入错误 : No module named tensorflow

javascript - 在 IE8 中使用 javascript __proto__

backbone.js - 使用 fabric.Image.fromURL 加载 base64 图像

php - 将 Magento 1.6.1 升级到 1.7.0 保存自定义模块