我对我的r.js优化脚本感到困惑。我想我的问题的答案是在文档中,但我认为我会因为长时间盯着文档而盲目。
我的应用程序有一个像这样的目录结构
-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
非优化版本永远不会初始化。如果我在两个文件中包含调用,我会收到错误。
在加载优化或非优化文件后,如何确保我的第一个模块是必需的?在我的第一个模块的依赖项已经完全加载后,我不明白我应该如何进行第一次调用。
答案 0 :(得分:1)
因为r.js使用js / app.js作为配置文件而未包含在优化脚本中
好吧,然后修改您传递给r.js
的构建配置,以便在最终优化的捆绑包中包含js/app.js
。没有任何内容禁止您在最终捆绑中包含您使用mainConfigFile
指向的文件。