javascript - RequireJS - 加载一个已经加载的模块

标签 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 

当它显然已经加载时。

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

最佳答案

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

可能的原因和修复:

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

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

关于javascript - RequireJS - 加载一个已经加载的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4810384/

相关文章:

javascript - Chrome 扩展程序未加载 jquery

javascript - 将 twitter api1.0 迁移到 1.1 json 数据访问问题

javascript - 如何在 html 电子邮件模板中覆盖 gmail 视口(viewport)?

javascript - AngularJS + RequireJS 不工作

javascript - 与 requirejs 一起使用时会出现gapi未定义错误

javascript - Dojo 和 RequireJS : Error: defineAlreadyDefined(…) when using both on a site

javascript - 尝试创建简单的 JavaScript 幻灯片

javascript - 从字典javascript中获取所有最小值

javascript - JS — 尝试返回 AJAX 数据

javascript - 这是在 Angular 2 中实现 Pipe 的正确方法吗