我正在阅读优化器文档很长一段时间,但似乎我无法理解。医生说:
优化器只会组合在传递给顶层 require 和 define 调用的字符串文字数组中指定的模块,或者在简化的 CommonJS 包装中组合 require('name') 字符串文字调用。因此,它不会找到通过变量名加载的模块:
好的,到目前为止一切都很好。这基本上意味着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.jses5shim.js
(优化器)仅通过链接并tools.js
进入该文件来创建该文件。有没有什么好的方法/解决方法来告诉优化器,它也应该在这个例子中链接window.js
,header.js
和文件?content.js
当然domReady
,这个实例中的插件会被加载并最终执行回调,但是这里的结构本身似乎阻止了优化器完成它的工作。
问题是:
如果我只是在“Top require call”中列出所有模块,r.js 是否还会将嵌套和嵌套嵌套模块中的所有 top
require
和调用包含+链接到main-app文件中?define
他们在文档中提到了r.js的包含选项。它在这里有意义吗?如果是这样,如何正确调用它?
当然,您不希望稍后失去延迟加载模块的选项,但是对于这种依赖(等待 DOMContentLoaded),我希望有一种解决方法。