【问题标题】:says that Namespace 'already been declared' when I've only declared it once说命名空间“已经被声明”,而我只声明过一次
【发布时间】:2014-12-10 20:25:47
【问题描述】:

这里是新手问题,因为我刚开始使用 lime.js 进行游戏开发,但我在下面收到了这个错误,我一生都无法弄清楚为什么这个错误表明 'moba.Bullet' 已经声明,因为我只提供过一次!

这是完整的错误:

Uncaught Error: Namespace "moba.Bullet" already declared. 
   goog.provide base.js:
   (anonymous function)

在 base.js 中查看错误的位置时,我得到了以下代码:

goog.provide = function(name) {
  if (!COMPILED) {
    // Ensure that the same namespace isn't provided twice.
    // A goog.module/goog.provide maps a goog.require to a specific file
    if (goog.isProvided_(name)) {
      throw Error('Namespace "' + name + '" already declared.');
    }
  }

我只提供了命名空间一次!这让这更加令人困惑!

要理解这个问题,看看我的文件结构会有所帮助。

我的lime.js 游戏的文件夹结构如下所示:

limejs >
  moba >
    moba.html
    moba.js
    bullet.js
  bin >
    lime.py
    projects
    external >
  closure
  box2D

我什至运行了 bin/lime.py update 以便 moba.js(主 js 文件)能够识别 bullet.js!

现在我们来了解如何使用 goog.provide 和 goog.require 调用每个文件。

moba.js >
  goog.provide('moba');
  goog.require('moba.Bullet');

bullet.js >
  goog.provide('moba.Bullet');
Pretty standard, right?!

我不知道从这里去哪里。我试过通过命令行重新创建项目,但没有爱。所以请帮忙,谢谢你的帮助!

【问题讨论】:

    标签: javascript html require google-closure


    【解决方案1】:

    如果你看第一行你会看到开始标签,那么第二行 if (!COMPILED) 有一个开始标签,那么第五行是 if (goog.isProvided_(name)) 和另一个开始标签,但该代码末尾只有两个结束标记,我认为应该有第三个。

    【讨论】:

    • 嗨 Amber,我认为您注意到的不平衡花括号不是海报问题的一部分,而是海报粗心复制和粘贴的副产品。您可以通过 cmets 询问原始帖子,让他们澄清并添加更多上下文以帮助您回答。
    【解决方案2】:

    我也是新手,但查看以下代码时,我注意到第一个 if 语句缺少结束标记:

    goog.provide = function(name) {
      if (!COMPILED) {
        // Ensure that the same namespace isn't provided twice.
        // A goog.module/goog.provide maps a goog.require to a specific file
        if (goog.isProvided_(name)) {
          throw Error('Namespace "' + name + '" already declared.');
        }
      }
    

    有时忘记关闭 if 语句会导致很多问题。希望这会有所帮助。

    【讨论】:

    • 缺少的结束标签在哪里?我没看见它!我也有同样的问题。
    • 我的问题是由于重复的
    猜你喜欢
    • 1970-01-01
    • 2011-01-09
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 2011-07-06
    • 1970-01-01
    • 2013-03-05
    相关资源
    最近更新 更多