我有以下main.js
:RequireJS忽略了一些路径
requirejs.config({
paths: {
'backbone': 'backbone-min',
'underscore': 'underscore-min',
'loader': 'loader-min'
}
})
这种 '架min.js' 文件只是一个优化从loader.js
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>
顺便说一句,正如我从Fire看到的错误控制台,只有以下网址浏览器负载:
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
和underscore
。大多数情况下,但不是全部时间。有时它在加载时失败/js/backbone.js
似乎RequireJS在main.js
被完全加载并由浏览器解释之前开始工作。它预期的行为?或我的应用程序有问题?
如何确保requirejs(...)
函数仅在处理完'main.js'后执行?
如果我有其他模块,uniq每页和用户类型,不仅'loader.js'。这是否意味着无法继续将它们作为单独的脚本使用,我应该将它们全部放入一个巨大的main.js中? – 2013-02-25 11:27:58
我的意思是,requirejs的主要目标是使它可以使用小模块并只加载所需的代码 – 2013-02-25 11:28:58
我编辑了我的答案以回答上述两个问题。希望这可以解决问题。 – 2013-02-25 11:44:16