我在使用例如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/

10-13 08:09