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

Ole*_*gas 6 javascript requirejs

我有一组带有constructor-as-a-function的命名requirejs模块.

define('myModule', [ 'import1', 'import2' ], function(i1, i2) {
    ...
});
Run Code Online (Sandbox Code Playgroud)

我希望能够

  • 以corect顺序将模块附加到HTML 通过脚本标记使用 requirejs API
  • 使用 requirejs API 附加和使用模块

现在,然后我附加一个define调用文档的脚本,脚本成功加载,但模块没有定义,没有调用构造函数.

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

Ber*_*rgi 6

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

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

是否有一些解决方法来解决这个问题?

如果你想执行它,只需require()调用它(虽然不是在同一个文件中).

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

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