在requirejs中定义模块时的加载顺序?

在requirejs中定义模块时的加载顺序?,requirejs,amd,Requirejs,Amd,我知道可以使用嵌套的require require(["site_common/js/config"], function () { require(['infrastructure'], function() { ... 我想定义一个模块,它依赖于a.js,a.js依赖于B.js define([B], func() { require([A], func() { var C = new Foo(); return C; }); }); 不起作用。如何定

我知道可以使用嵌套的require

 require(["site_common/js/config"], function () {
   require(['infrastructure'], function() { ...
我想定义一个模块,它依赖于a.js,a.js依赖于B.js

define([B], func() {
  require([A], func() {
     var C = new Foo();
     return C;
  });
});

不起作用。如何定义依赖于A和A依赖于B的C?

您通常不应该嵌套调用
require
。 你不能把它作为一个普通的依赖项吗

require(["site_common/js/config", 'infrastructure'], function (config, infra) { ...

或:

文件A.js

文件B.js

文件C.js

文件main.js

define(['B'], function (B) {
    return { b: B };
}
define([], function () {
    return { message: "hello!" };
}
define(['A'], function (A) {
    return { a: A };
}
require(['C'], function (C) {
    alert( C.a.b.message ); // alert box saying "hello!"
});