requireJS优化器不包括嵌套的require调用
requireJS optimizer does not include nested require calls
我已经阅读优化器文档很长一段时间了,但似乎我不明白。文档说:
优化器将只组合数组中指定的模块传递到顶级的字符串文字的请求和定义调用,或简化中的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
调用链接到主应用程序文件中?他们在文档中提到了r.js的include选项。它在这里有意义吗?如果有,如何正确调用它?
当然,您不希望以后失去延迟加载模块的选项,但对于这种依赖关系(等待DOMContentLoaded),我希望有一种解决方法。
默认情况下,RequireJS不扫描嵌套的require调用,因为它假设这些调用是为了在运行时加载依赖项。您可以通过设置来覆盖它
findNestedDependencies: true
在您的优化配置中。希望能有所帮助。
相关文章:
- 避免重新评估和动态卸载用“require”调用的对象
- 不能从 Backbone.View 的方法调用 Backbone.collection 的方法,其中包含 require
- requireJS优化器不包括嵌套的require调用
- 使用不受信任的字符串(require.js)调用require()会引发安全问题
- requirejs - 对 require 的多个调用的性能
- 节点.js对require()的双重调用
- 未捕获错误:按 require.js 加载非 AMD 脚本时没有定义调用
- 调用require(['app'])仅一次
- 是否有嵌套require函数调用的原因
- RequireJS main require回调从未调用过
- RequireJS似乎忽略了我的路径定义(我没有在html中调用require()).为什么
- 在require()调用中使用变量时进行RequireJS优化
- 如何让Rollup转换require()调用
- 是什么使这两个require.js调用彼此不同呢?
- require.js中的JavaScript继承:非法调用
- 如何存根require() / expect调用"根"模块的功能
- 为什么browserfy在调用require之前加载每个模块
- RequireJS :嵌套的 require 调用
- 如何传递元素参数给require.js定义调用
- Require/Backbone:在调用Backbone时重载Backbone