requirejs 定义模块未按预期工作

requirejs defining modules not working as expected

我有以下场景:

我有一个名为 fort 的全局命名空间,它有一些我需要的常用功能,它看起来像这样:

fort.js

define("fort", ["fortHistory"], function (FortHistory) {

  function Fort(){}
    Fort.prototype.history = FortHistory;

    return Fort;
});

fortHistory 是我创建的一个小模块,定义如下:

fortHistory.js

"use strict";
define("fortHistory", function () {

function FortHistory() {

}
FortHistory.prototype.doSomething = function(){...}
return FortHistory;
});

然后我在 config.js

中执行此操作
require.config( {
    enforceDefine: true,
    paths: {
        'fort': 'develop/js/fort',
        'fortHistory' : 'develop/js/webapp/fortHistory'
 },
    shim: {
        fort:{
            exports: 'fort'
        }
    }
} );
define( function() {} );

终于在 main.js 我有:

define('fort', [], function(fort){
    window.fort = fort;
});

希望我可以拨打这样的电话:

fort.fortHistory.doSomething();

相反,堡垒是未定义的,所以我假设我误解了 requirejs 的工作原理

您将其命名为 history,而不是 fortHistory:

Fort.prototype.history = FortHistory;

尝试通过 fort.history.doSomething(); 调用它。