【问题标题】:RequireJS not correctly initializing modulesRequireJS 没有正确初始化模块
【发布时间】:2016-02-05 07:53:24
【问题描述】:

当我访问我的网站时,它通常运行良好。其他时候,我从 Javascript 中得到一个错误,导致我相信我 需要 的对象或函数在使用时没有被 requirejs 正确初始化。

例如,这是我的一个模块的顶部:

这是代码中此时 Backbone 变量的值。

请注意,对象是通过加载函数返回的。这种行为似乎任意发生在各种已定义和必需的模块(不仅仅是 Backbone)上。

我可以确认调用了模块上的 define 方法(该模块与 AMD 兼容。Backbone 已填充。)但未调用传递给 define 调用的函数。

我的猜测是 requirejs 仍在以某种方式对其进行初始化,但我认为 require 调用是同步的,并且只有在模块准备好使用时才会返回。

任何帮助或指导表示赞赏。谢谢。

【问题讨论】:

  • 我已经使用 RequireJS 多年,但从未遇到过您报告的行为。请发帖minimal reproducible example
  • 如果我能做到这一点,我相当肯定我现在已经解决了 :) 不幸的是,它是一个大型企业应用程序,有许多移动部件,所以我很难以这种方式重现它。
  • 嗯...很多人发布有关requirejs 的问题,其中包含minimal reproducible example,但他们的问题并未得到解决。因此,有证据表明可以在没有解决问题的情况下发布 MCVE。
  • 好的,我很感激。我试图暗示问题可能与应用程序的复杂性有关。

标签: javascript backbone.js requirejs require


【解决方案1】:

经过大量挖掘,我能够确定加载方法来自 Google 可视化库 WebFontLoader 的依赖项。

有关该错误的可能原因的详细信息如下: https://github.com/google/google-visualization-issues/issues/2070

为了解决这个问题,我接受了使用冻结加载程序的建议,但版本为 41,而不是 43。

【讨论】:

    猜你喜欢
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多