我有以下内容main.js
:
requirejs.config({
paths: {
'backbone': 'backbone-min',
'underscore': 'underscore-min',
'loader': 'loader-min'
}
})
这个'loader-min.js'文件只是一个优化的js loader.js
:
define(['backbone', 'underscore'], function () {
})
我的 HTML 页面包含以下内容:
<script data-main="/js/main" src="/js/require.js"></script>
<script type="text/javascript">
requirejs(['loader'], function(loader) {
....
})
</script>
顺便说一句,正如我从 Firebug 控制台看到的,浏览器仅加载以下网址:
GET /js/require.js
GET /js/main.js
GET /js/loader.js !!! Notice it's loader.js, not loader-min.js
GET /js/backbone-min.js
GET /js/underscore-min.js
因此,对于模块loader
它尝试加载文件的问题loader.js
,而不是在main.js
. 未缩小/优化文件,忽略requirejs.config
值。
backbone
最奇怪的是它仍然为and使用正确的值underscore
。大多数情况下,但并非所有时间。有时加载失败/js/backbone.js
似乎 RequireJS 在main.js
浏览器完全加载和解释之前就开始工作了。这是预期的行为吗?还是我的应用有问题?
如何确保requirejs(...)
仅在处理“main.js”后才执行该函数?