javascript – RequireJS忽略了一些路径
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – RequireJS忽略了一些路径,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1903字,纯文字阅读大概需要3分钟。
内容图文
我有以下main.js:
requirejs.config({
paths: {
'backbone': 'backbone-min',
'underscore': 'underscore-min',
'loader': 'loader-min'
}
})
这个’loader-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>
顺便说一下,正如我在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.js而不是在main.js配置的路径的问题.未缩小/优化文件,忽略requirejs.config值.
最奇怪的是它仍然使用正确的骨干和下划线值.大多数情况下,但不是所有时间.有时加载/js/backbone.js失败
似乎RequireJS在main.js完全加载并由浏览器解释之前开始工作.这是预期的行为吗?我的应用程序有什么问题?
我怎样才能确保只在处理’main.js’后才执行requirejs(…)函数?
解决方法:
您的main.js文件是异步加载的.但是,此脚本标记(下面)将按顺序进行解析.因此无法预测执行顺序(尽管下面的脚本很可能在异步调用返回之前执行).
<script type="text/javascript">
// require() and not requirejs()
require(['loader'], function(loader) {
....
})
</script>
在main.js文件的末尾添加require调用,如下所示:
require.config({
// configuration.
});
require(['loader'], function(loader) {
// callback
})
这样,在执行任何require或define调用之前,RequireJS始终处于“配置”状态.
编辑:
我通常做什么:
<script src="/js/require.js"></script> <!-- No data-main attribute -->
<script src="/js/config.js"></script> <!-- Explicitly load configuration -->
<script type="text/javascript">
require.config({
baseURL: "path/to/base"
});
require(["module"], function(module){
// code
});
</script>
这样我就可以明确控制加载的位置.它还保持我的config.js文件DRY.
我通常在我的bootstrap HTML中设置baseURL,因为这样我可以使用相同的配置文件来安装我的Jasmine测试套件.
内容总结
以上是互联网集市为您收集整理的javascript – RequireJS忽略了一些路径全部内容,希望文章能够帮你解决javascript – RequireJS忽略了一些路径所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。