RequireJS 模块不加载依赖项

RequireJS module not loading dependencies

我在使用 requireJS 加载模块时遇到问题。我有两个文件:

文件 1:app1/js/utils/commons/commons.js

define("utils/commons/commons",
    [
        "../../../../app2/MenuModule"
    ], function (MenuModule) {
//MenuModule is undefined here
var app = angular.module('commons', ['MenuModule']);

});

文件 2:app2/MenuModule.js

define("../../../../app2/MenuModule",
    [
        "../../../../app2/MenuController",
        "../../../../app2/MenuRestProvider"

    ], function (MenuController,
    MenuRestProvider) {

var app = angular.module('MenuModule', []);

app.factory('MenuRestProvider', MenuRestProvider);
app.controller('MenuController', MenuController);

return app;

});

重点是:File1加载File2,File2的'define'函数是运行。不获取 File2 的依赖项,不评估传递给 'define' 函数的函数。你能看出是什么导致了这个问题吗?

我认为您将路径与模块 ID 混淆了。很容易将一个与另一个混淆,因为路径最终导致根据它的重新定位方式定义 moduleID,但是当您将相关符号放在模块引用中时,不要考虑 'going up a path',而是“向上移动”模块层次结构。

这意味着您需要与我们共享您的路径配置,以便我们可以看到如何将引用的模块 ID 转换为加载路径。

也同意:将 moduleID 直接放在 define() 调用中有代码味道。您应该让 amd 加载程序为您定义 moduleID(通过使它们成为匿名模块。