【问题标题】:RequireJS works inconsistentlyRequireJS 工作不一致
【发布时间】:2012-09-07 18:26:00
【问题描述】:

当我按 F5 重新加载我的应用时,有时会抛出错误,有时不会。

我正在使用 Chrome 进行调试。有时控制台会报这个错误:

Uncaught ReferenceError: unit_directionals is not defined

有时会抛出未定义引用,就像在这种情况下为 jquery 定义的: “未捕获的 ReferenceError:jQuery 未定义”

如果我以正确的方式定义文件会有什么问题?

这是我在 main.js 中指向主索引 html 的代码:

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
    }
);

【问题讨论】:

  • 看起来和我在这里发布的问题相同:stackoverflow.com/questions/10959095/…。 Google Groups 上也有一个关于它的帖子:groups.google.com/forum/?fromgroups#!topic/requirejs/…。我们仍在努力寻找解决方案。
  • 如果你找到解决方案请告诉我兄弟,我会很高兴的!!!
  • 我们遇到了这个问题。结果发现 jQuery 被包含两次,导致 F5 出现随机脚本错误。 jQuery 曾经包含在 require 中,另一个包含在 MVC 局部视图上的脚本标记中。我们从视图中删除了 jQuery 脚本标签,它现在可以正常工作了;可以F5一整天。真是头疼!

标签: javascript jquery backbone.js requirejs underscore.js


【解决方案1】:

requirejs 异步加载模块,它们可能会乱序加载——它们不能保证按照 require 调用中指定的顺序加载。如果脚本是 AMD 模块,并且调用 define() 及其依赖项,这不是问题。

但是,如果脚本只使用浏览器全局变量和隐式依赖项,例如主干和可能的把手,则需要 shim config 来正确表达依赖项和导出值。

【讨论】:

    猜你喜欢
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多