Ace Editor 和 Dojo 1.9 与 AMD

Posted

技术标签:

【中文标题】Ace Editor 和 Dojo 1.9 与 AMD【英文标题】:Ace Editor and Dojo 1.9 with AMD 【发布时间】:2013-11-04 00:19:10 【问题描述】:

我在将 Ace 编辑器与 Dojo 1.9 一起使用 AMD 加载时遇到问题。

<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?

谢谢

【问题讨论】:

【参考方案1】:

不要尝试像那样加载 ACE,它会一直失败,即使您设法在加载时调整 require/define。

目前有效的是:

通过脚本标签加载ACE,如示例所示 使用 ace.require 来加载 ACE 扩展/主题,而不是 Dojo 的 require

原因:ACE 是用 require-js 构建的,大多数模块也是用 CJS 编写的,而不是 AMD;这意味着您在构建 Dojo 应用程序时也会遇到麻烦。

here 是我的 Dojo ACE 编辑器(抓住你需要的东西)

【讨论】:

以上是关于Ace Editor 和 Dojo 1.9 与 AMD的主要内容,如果未能解决你的问题,请参考以下文章

Ace editor 中文文档

如何侦听 Ace Editor 更改事件并做出反应

Dojo 1.9:当父窗口小部件启动时,placeAt 自动调用启动

ACE Editor 常用Api

Ace Editor 手动添加片段

vue2-ace-editor代码编辑器使用