当我按F5重新加载我的应用程序时,有时会抛出错误,有时则不会。
我正在使用Chrome进行调试。有时控制台会报告此错误:
Uncaught ReferenceError: unit_directionals is not defined
有时会抛出一个引用没有像jquery那样被定义: "未捕获的ReferenceError:jQuery未定义"
如果我以正确的方式定义文件会出现什么问题?
这是我在主索引html中指向的main.js中的代码:
requirejs.config({
baseUrl: 'js/lib',
paths:{
app:'../app',
models: '../app/models',
views: '../app/views'
}
})
requirejs(
[
//load lib in this order
'underscore', 'handlebars', 'jquery','backbone', 'uri',
//load models, views...
'app/models/items.model', 'app/models/results.model',
'app/views/items.view', 'app/views/results.view',
'app/index'
],
function(jQuery,$,_....) {
//init app
}
);
答案 0 :(得分:10)
requirejs加载模块异步并且它们可以无序加载 - 它们不能保证按require调用中指定的顺序加载。如果脚本是AMD模块,并且使用其依赖项调用define(),则这不是问题。
但是,如果脚本只使用浏览器全局和隐式依赖,例如主干和可能的把手,则需要shim config来正确表达依赖关系和导出值。