requirejs - 在定义模块时构造模块,而不是在需要时构建模块

时间:2013-07-05 13:33:44

标签: javascript requirejs

我有一组带有构造函数as-a-function的命名requirejs模块。

define('myModule', [ 'import1', 'import2' ], function(i1, i2) {
    ...
});

我希望能够

  • 通过脚本标记将模块附加到HTML NOT USING requirejs API
  • 附加并使用模块 USING requirejs API

现在,我将一个带有define调用的脚本附加到文档,脚本成功加载,但模块未定义,构造函数未被调用。

这是正常行为吗?是否有一些解决方法可以解决这个问题?

1 个答案:

答案 0 :(得分:6)

  

脚本已成功加载,但未调用构造函数。这是正常行为吗?

是。它们仅在需要时执行,define可能会重命名为register。此外,它可能还需要等待它的依赖。

  

是否有一些解决方法可以解决此问题?

如果您想执行它,只需对其require()进行require调用。

  

我有一些遗留代码,它们对模块一无所知,而是取决于文件附件。

虽然脚本附件成功加载它们(同步!),但它们将异步执行。你最好将遗留代码包装在{{1}}中(这不应该破坏任何东西)。