如何定义一个尚未使用RequireJS定义的依赖项的模块?

时间:2014-02-08 00:08:45

标签: javascript dependency-injection requirejs qunit

假设我有依赖于模块B和C的模块A,但首先定义了A.有没有办法推迟A的定义,直到B和C被定义,然后加载A及其依赖?

一些背景知识:我正在研究一个使用DOM插入点来定制页面内容和行为的专有系统。我无法移动定义模块B和C的位置,因为这些插入点已插入服务器端,我无法触及。

我还编写了一个测试套件(使用QUnit),在上面的例子中导入了可以被认为是模块A的东西。我的testrunner页面在页面顶部导入了QUnit和模块A,模块B和C被进一步导入。

通常情况下,我会尝试在模块B和C的模块定义之后将模块A定义插入到DOM中,但是我正在编写的特定页面正在使用框架,我认为这些框架是在{ {1}}标记已运行。如果可以在标题中修改帧的DOM,那可能会解决我的问题。

我知道这个问题不包含任何代码,但我认为这个问题的本质更具理论性,我省略了它。

如果我错了,你想查看我的代码,请询问!

1 个答案:

答案 0 :(得分:0)

嗯......是的:

require(["B", "C"], function () {
    require(["A"]);
});

提供了一个理智的RequireJS配置,并且在此代码运行之前没有其他任何内容需要"A",模块“{”}之前将定义模块"B""C"

理智的RequireJS配置示例:

{
    baseUrl: "./js"
}

这告诉RequireJS所有模块都在./js子目录中。定义模块“A”,“B”,“C”的文件A.jsB.jsC.js必须位于./js子目录中。