【发布时间】: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