RequireJS - 加载已加载的模块

时间:2011-01-26 21:44:59

标签: javascript requirejs

我正在尝试使用RequireJS加载浏览器模块,我遇到了一个有趣的问题。

我有3个名为abc的模块,这些模块包含以下简单的源代码:

a.js

define(['./b', './c'], function(c, b) {
 console.log('A IS LOADED!');

 return 'A';
});

b.js

define(function() {
 console.log('B IS LOADED!');

 return 'B';
});

c.js

define(function() {
 console.log('C IS LOADED!');

 return 'C';
});

当我自己加载模块a时,一切正常,下面的代码运行并返回'A':

require(['./a'], function(a) { 
    console.log(a); // 'A'
});

但如果我需要两个不同的模块,其中一个已加载:

require(['./a', './c'], function(a, c) { 
    console.log(a, c);
});

RequireJS会出错:

C IS LOADED!
B IS LOADED!
require.js load timeout for modules: ./c 

当它显然已经加载时。

以前有人遇到过这个问题吗?我该如何解决?

1 个答案:

答案 0 :(得分:0)

根据RequireJS网站(http://requirejs.org/docs/errors.html#timeout):

可能的原因和解决方法:

  • 其中一个列出的模块中存在脚本错误。如果浏览器的错误控制台中没有脚本错误,并且您正在使用 Firebug,尝试在Chrome或其他浏览器中加载页面 苹果浏览器。有时脚本错误不会出现在Firebug中。

  • 模块的路径配置不正确。检查浏览器开发人员工具中的“网络”或“网络”选项卡,看看是否有 404用于映射到模块名称的URL。确保 脚本文件在正确的位置。在某些情况下,您可能需要使用 用于修复脚本URL解析的路径配置。

相关问题