
正文
RequireJS 主入口加载模块经常会加载失败的问题
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
在接入requirejs时,在main入口遇到了这样的问题,使用jquery,刷新10次页面会有3-4次加载失败,找不到$符号等等
require.config({
'baseUrl': './modules',
'paths': {
'jquery': '../../../jquery/jquery-1.8.0.min',
'request' : 'request',
'helper' : 'helper',
'log' : 'log',
'pageBar' : 'pageBar',
'supplier' : '../supplier/supplier'
},
'waitSeconds': 0
});require(['jquery','request','helper','log','pageBar'],function ($, request, helper, log, pageBar) {
$(function () {
require(['supplier']);
});
});
在百度找了好久也没有找到合适的答案,到官方文档寻求帮助时,看到了module_id的概念,我是第一次使用,没有好好阅读文档,第一次知道有这个东西来区分不同模块
原因是我多个模块中都使用了jquery,定义了$,由于requirejs是异步加载,不按照按顺序加载,就可能发生后面的模块比前面的模块先加载,个人理解,可能也不是这么回事,但暂时解决了问题。
修改前:
define('jquery',function ($) {
return {
refash: function (name, funcName) {
...
}
}
})
修改后:
define('pageBar','jquery',function ($) {
return {
refash: function (name, funcName) {
...
}
}
})
使用module_id为每个使用相同变量的模块命名,用于区分,避免发生冲突






