【发布时间】:2012-07-25 06:39:00
【问题描述】:
我正在阅读优化器文档很长一段时间,但似乎我无法理解。医生说:
优化器只会组合数组中指定的模块 传递给顶层 require 和 define 的字符串字面量 调用,或简化的 require('name') 字符串文字调用 CommonJS 包装。因此,它不会找到通过 变量名:
到目前为止还不错。这基本上意味着 r.js 不会包含也不会抓取嵌套的依赖项。现在假设我们有一个“主应用程序”文件,如下所示:
require([ 'es5shim', 'tools' ], function() {
console.log('fictive app entry point');
require([ 'domready!' ], function( doc ) {
console.log('domReady, loading GUI modules...');
require([ 'GUI/window', 'GUI/header', 'GUI/content' ]);
});
});
我想问题在这里变得非常明显。 r.js(优化器)仅通过将es5shim.js 和tools.js 链接到该文件来创建该文件。有什么好的方法/解决方法可以告诉优化器,它还应该在这个例子中链接window.js、header.js 和content.js 文件?
当然,此实例中的domReady 插件将被加载并最终执行回调,但此处的结构本身似乎阻止了优化器完成其工作。
问题是:
如果我只是在“Top require call”中列出所有模块,r.js 是否还包括+链接所有来自嵌套和嵌套的顶部
require和define调用- 将模块嵌套到 main-app 文件中?他们在文档中提到了 r.js 的 include 选项。它在这里有意义吗?如果是,如何正确调用它?
当然你不希望以后失去延迟加载模块的选项,但是对于这种依赖(等待 DOMContentLoaded),我希望有办法解决这个问题。
【问题讨论】:
-
我不明白:你为什么要嵌套需求?为什么不让 GUI/窗口依赖 es5shim,让 es5shim 依赖 domready! ?
标签: javascript requirejs