Namespace'已声明'当I'我只声明过一次
says that Namespace 'already been declared' when I've only declared it once
这里是新手的问题,因为我刚刚开始用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更新,这样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?!
我不知道从这里到哪里去。我试着通过命令行重新创建这个项目,但没有得到任何支持。所以请帮忙,谢谢你的帮助!
如果你看第一行,你会看到开始标记,然后第二行If(!COMPILED)有一个开始标记,第五行是If(goog.isProviderd_(name))和另一个开始标签,但代码末尾只有两个结束标记,我认为应该有第三个。
我也是一个新手,但在查看以下代码时,我注意到第一个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语句会导致很多问题。希望这能有所帮助。
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- Javascript html每点击一次就会更改url
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- jQuery滚动功能只工作一次
- 刷新导致我的帖子“;张贴“;再一次
- 引导程序崩溃一次只能看到一个
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 加载器组件仅加载一次
- 根据Angular.JS上一次的内容禁用选择
- 一次又一次地在新的和相同的选项卡中打开一个url
- 在 JavaScript 中,当一次声明多个变量时,仅使用一个 var 语句是否有内存优势
- Namespace'已声明'当I'我只声明过一次
- 在requirejs中只声明一次时,模块共享相同的url
- 在单个网页上一次显示一个调查声明的有效方式
- 在页面中的多个位置嵌入一次声明的html内容
- 为什么声明xmlhttp.Onreadystatechange导致这个程序只工作一次
- 在循环中只声明一次变量的最快方法是什么?
- 在所有地方重复$(),或者声明一次然后重用