【问题标题】:ACE editor dropping module because define wasn't a stringACE 编辑器删除模块,因为定义不是字符串
【发布时间】:2016-05-13 16:38:20
【问题描述】:

我在一个项目中使用 ace 编辑器。我正在尝试创建一个HightLight,按照教程 Higlighter section on ace editor page,但是当我使用这段代码时:

define(function(require,exports,module){
        //any code here
});

我在 Web 控制台中收到此错误:

删除模块,因为 define 不是字符串。

有人知道为什么会这样吗?

【问题讨论】:

  • 我也遇到过这种情况,但在我的情况下,这是由于 ace 使用了不正确的 js 库,导致定义函数出现问题,如答案中所述。

标签: javascript ace-editor


【解决方案1】:

Ace 定义了一个名为define 的全局函数,该函数就是产生错误的原因。

如果您有任何其他调用 define 的 JS 库(尤其是 CommonJS 或 AMD 模块),如果 Ace 在它们之前加载,它们最终会调用 Ace 版本。

在我的例子中,我有一个由 Browserify 生成的 JS 文件,其中包含一堆 Node 模块,其中一个使用空数组而不是 module 参数的字符串调用 define。而且因为它是在 Ace 脚本文件之后包含的,所以它使用的是 Ace 版本的 define,它抱怨有问题的错误消息。

更改脚本包含的顺序可能会解决此问题(将您的其他基于模块的脚本包含在 Ace 脚本包含之上)。这对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-14
    • 2012-06-08
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    相关资源
    最近更新 更多