错误:defineAlreadyDefined
Posted
技术标签:
【中文标题】错误:defineAlreadyDefined【英文标题】:Error: defineAlreadyDefined 【发布时间】:2012-04-18 17:12:13 【问题描述】:我收到此错误:Error: defineAlreadyDefined
,仅在 dojo 中出现。
index.php
<script data-main="app" src="require.js"></script>
app.js
require(
paths :
dojo : 'http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojo/dojo'
);
require([ 'dojo' ], function()
//something
);
我发现了一个类似的问题,但没有帮助我:
When dojo.js loaded via ajax multiple times get Error: defineAlreadyDefined
编辑:我搜索并认为我尝试使用 requiJS 和 Dojo 的方式是错误的。 http://dojotoolkit.org/features/1.6/async-modules
有什么想法吗?谢谢
【问题讨论】:
【参考方案1】:要使用带有 dojo 的外部加载器,您需要跳过定义 AMD 加载器的 dojo/dojo.js 文件。你的 require 配置应该是这样的:
require(
packages: [
name: 'dojo',
location: 'dojo',
main:'dojo/main'
]
);
然而,dojo 加载器在加载 jQuery 插件方面与 requireJS 一样出色,并且它附带了一些额外的插件,例如 dojo/has
。我会认真考虑是否只使用它的加载器。
【讨论】:
【参考方案2】:我不确定你想在这里完成什么,但Dojo implements requireJS。因此你不需要 requireJS。
对于 Dojo 库的正常使用,您会做的是:
//call dojo script
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.2/dojo/dojo.js"></script>
<script>
var dojoConfig = (function()
return
async: true,
//in case you wanted to use your own library
paths: [
name: "location/library"//your library path
]
;
)();
require([
"dojo/parser",
"name/something",//calling 'somethong' from library
"dojo/domReady!"
], function(parser, something /*your library obj*/)
//your logic
parser.parse();
something.do();
);
);
</script>
【讨论】:
之所以喜欢requireJS是因为我有很多jquery插件,还有dojo。以上是关于错误:defineAlreadyDefined的主要内容,如果未能解决你的问题,请参考以下文章