我在使用例如AMD加载的Dojo 1.9中包括Ace编辑器时遇到了麻烦。
<script type="text/javascript">
require([
'dojo/on',
'dojo/dom',
'somelocal/folder/ace'
'dojo/domReady!'
],
function(
on,
dom,
ace
) {
var editor = ace.edit("editor");
editor.setTheme("ace/theme/github");
editor.getSession().setMode("ace/mode/twig");
});
</script>
我收到一个错误:
TypeError: _define.modules is undefined
var module = _define.modules[moduleName];
如何在dojo中包含上述Ace?
谢谢
最佳答案
不要尝试那样加载ACE,即使您在加载时设法处理需求/定义,它也会一直失败。
到目前为止有效的是:
通过脚本标签加载ACE,如示例所示
使用ace.require加载ACE扩展/主题,而不是Dojo的require
原因:ACE是使用require-js构建的,大多数模块也是用CJS而不是AMD编写的;这意味着您在构建Dojo应用程序时也会遇到麻烦。
而here是我的Dojo ACE编辑器(获取所需内容)
关于javascript - Ace编辑器和带有Dojo 1.9的AMD,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19759902/