【问题标题】:Require map: Getting module timeout when mapping extension需要映射:映射扩展时获取模块超时
【发布时间】:2023-04-01 03:04:01
【问题描述】:

我有一个 Mediator-Sandbox 库和一个基于该库构建的路由器扩展。

库是这样构建的:

(function(window) {

  var MedSan = {};

  window.MedSan = MedSan;

})(this);

扩展看起来像这样:

(function(_, Backbone, MedSan) {

  MedSan.Router = {};

})(_, Backbone, MedSan);

加载扩展所需的配置如下所示:

require.config({

    baseUrl: "javascripts",

    shim: {
        "jquery": {
            exports: "$"
        },
        "underscore": {
            exports: "_"
        },
        "backbone": {
            deps: ['jquery', 'underscore'],
            exports: "Backbone"
        },
        "Distribution": {
            exports: "Distribution"
        },
        "Distribution.Router": {
            deps: ['underscore', 'backbone', 'Distribution'],
            exports: "Distribution"
        }
    },

    /*
    map: {
        "*": {
            "Distribution": "Distribution.Router"
        }         
    },
    */


    paths: {
        "jquery": "Vendors/jquery",
        "underscore": "Vendors/underscore",
        "backbone": "Vendors/backbone",

        "Distribution": "Distribution/Distribution",
        "Distribution.Router": "Distribution/Plugins/Router"
    }

});

我现在可以将我的完整库用于:

require(['Distribution.Router'], function(Distribution) {});

当我取消注释地图配置时,我可以通过这种方式使用带有路由器扩展的完整加载模块:

require(['Distribution'], function(Distribution) {});

比我得到一个模块超时。

我做错了什么?

【问题讨论】:

    标签: javascript map requirejs amd shim


    【解决方案1】:

    当您将Distribution 映射到Distribution.Router 时,您正在创建循环依赖,因为Distribution.Router 也依赖于Distribution

    要解决此问题,只需在 Distribution.Router 中添加另一行覆盖 Distribution 的地图即可:

    map: {
        "*": {
            "Distribution": "Distribution.Router"
        },
        "Distribution.Router": {
            "Distribution": "Distribution"
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 2011-08-14
      • 2017-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多