我对我的rjs优化脚本感到困惑。我想我的问题的答案在文档中,但我想我看得太久了,快看不见了。
我的应用程序的目录结构是这样的
-index.htm
-js/app.js
-js/init.js
-js/appname/*.js
在非优化模式下index.htm包含以下行:
<script type="text/javascript" data-main="js/app" src="js/lib/require-2.1.11.js"></script>
,一切正常。我的删节的js/app.js
脚本看起来像这样:
requirejs.config({
baseUrl: 'js',
paths: {
...
}
});
require(['init']);
当我构建优化的脚本时,我将js/app.js
指定为mainConfigFile
,并且一切都按照预期构建。但是,当我更新脚本标签的data-main
属性到构建产品时,我的应用程序没有初始化。
如果我在控制台中手动执行require(['init'])
,它会按预期启动。因为r.js使用js/app.js
作为它的配置文件,没有被包含在优化的脚本中,这意味着我的require(['init'])
也没有被包含。
我认为我可以通过将require(['init'])
移动到js/init.js
的末尾来修复这个问题,这确实修复了优化的构建(它按预期初始化),但现在该调用不在js/app.js
中,非优化版本从未初始化。如果我在两个文件中都包含调用,我会得到一个错误。
我如何确保我的第一个模块是需要优化或非优化的文件(s)加载后?我不明白在我的第一个模块的依赖项完全加载后,我应该如何进行第一次调用。
因为r.js使用js/app.js作为它的配置文件,没有被包含在优化的脚本
那么,修改您传递给r.js
的构建配置,以便js/app.js
包含在最终优化的包中。没有什么可以禁止您在最终包中包含使用mainConfigFile
指向的文件。