2

我使用 require.js 加载了三个库:

require(['lib/alpha', "lib/delta", "lib/gamma"], (alpha, delta, gamma) ->
  # initialize objects from libraries etc. 

它们看起来都非常相似:

# names changed for IP protection, so this code may look funny

define(->
  class alpha
    constructor: ({@type, @user, @data}) ->
      @time = new Date()
)

define(->
  class delta
    constructor: ({@logger, @config, @socket, @util}) ->
      #@logger.debug arguments
      @room = null
      (@util ?= {}).inspect ?= JSON.stringify

      # more functions ...
)

define(->
  class gamma
    alphas = null
    constructor: ({@logger, @config, @alphaUtility, @newId}) ->
      throw 'alpha utility not defined' unless @alphaUtility?

    # more functions ...
)

但是,我突然无缘无故地delta突然无法通过require. 它只是undefined在回调中。

相关细节:

  • 我已经delta好几周没碰过代码了
  • 从上周回滚到代码没有效果
  • 以不同的顺序加载或delta自行加载没有效果
  • js 文件存在于服务器上,当我直接调用 URL 时加载正常
  • 所有文件都在同一个文件夹中
  • 要求不抛出任何错误
  • 控制台中没有错误

我被难住了,我怎么知道为什么 require 不会加载这个文件?我已经逐步完成了代码,它有 2k 行,所以很难确定它失败的地方。

需要 2.1.8(截至 2013 年 9 月 24 日的当前版本)

4

1 回答 1

1

已经有一段时间了,还没有任何答案,所以我会写一个。

开发人员建议这require.js可能是 Chrome 29 中的一个错误。由于 Chrome 现已升级到 v30 并且此问题已停止发生,因此我必须假设它已修复。

于 2013-10-15T17:20:01.200 回答