我在一个项目中使用了Ace编辑器。我正在尝试按照Ace编辑器页面上的高亮器部分中的教程创建一个高亮器,但是当我使用以下代码时:
define(function(require,exports,module){
//any code here
});
我在Web控制台中看到了以下错误:
因为define不是一个字符串,所以该模块被放弃。
有人知道为什么会发生这种情况吗?
我在一个项目中使用了Ace编辑器。我正在尝试按照Ace编辑器页面上的高亮器部分中的教程创建一个高亮器,但是当我使用以下代码时:
define(function(require,exports,module){
//any code here
});
我在Web控制台中看到了以下错误:
因为define不是一个字符串,所以该模块被放弃。
有人知道为什么会发生这种情况吗?
Ace 定义了一个名为 define
的全局函数,而该函数是导致错误的原因。
如果您有其他JS库(特别是CommonJS或AMD模块)调用 define
,它们将在Ace加载之前被调用Ace版本。
在我的情况下,我有一个由Browserify生成的JS文件,其中包含一堆Node模块,其中之一使用空数组而不是字符串作为 module
参数来调用 define
。并且因为它是在Ace脚本文件之后包含的,所以它正在使用Ace版本的 define
,这会出现问题的错误消息。
更改您的脚本包括的顺序可能会解决此问题(将其他基于模块的脚本包括移动到Ace脚本包括之上)。这对我有效。