Error: multipleDefine from Dojo & jQuery-UI conflict

Error: multipleDefine from Dojo & jQuery-UI conflict

我正在尝试创建一个可编辑的 SlickGrid(它使用 jquery-ui)并且还使用 Dojo。

当我的页面包含
<script src="../../bower_components/dojo/dojo.js"></script>
<script src="../../bower_components/SlickGrid/lib/jquery-ui-1.11.3.js"></script>
<script src="../../mlads/fillDemo/FillDemo.js"></script>
控制台显示

Error: multipleDefine
return mix(new Error(error), {src:"dojoLoader", info:info});  dojo.js (line 106)
src: dojoLoader   dojo.js (line 1896)
info: Object { pid="dijit",  mid="dijit/_WidgetsInTemplateMixin",  pack={...},  more...}

如果我注释掉 jquery-ui 行,错误就会消失。
FillDemo.js 是我的源代码,以

开头
require(
[    "dojo/_base/declare",
     "dijit/_WidgetBase", 
     "dijit/_TemplatedMixin",
     "dijit/_WidgetsInTemplateMixin",
     "dijit/registry",
     "dijit/form/Button", 
     "dijit/form/DropDownButton",

看起来这是 jQuery UI 加载顺序与 dojo 加载程序初始化时的顺序错误。

有关更多上下文,请参阅此处的讨论:https://geonet.esri.com/message/448542#comment-448449

解决方案是确保在 jQuery UI 和 jQuery 加载后调用 dojo 加载程序。为此,你可以将dojo的加载移到HTML页面的底部,并在header中留下jQuery和jQueryUI。