You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用react-ace构建编辑器时报ReferenceError: ace is not defined如何解决

报错 ReferenceError: ace is not defined 解决方案
  • 方案一:手动挂载ace到全局作用域
    react-ace默认会从全局window对象读取ace实例,你使用的src-noconflict版本的ace-builds不会自动挂载实例到全局,需要手动添加挂载代码,完整导入部分修改如下:
import React from "react";
import { render } from "react-dom";
import AceEditor from "react-ace";
// 新增两行代码
import ace from 'ace-builds/src-noconflict/ace'
window.ace = ace

import "ace-builds/src-noconflict/mode-java";
import "ace-builds/src-noconflict/theme-github";

function onChange(newValue) {
  console.log("change", newValue);
}

render(
  <AceEditor
    mode="java"
    theme="github"
    onChange={onChange}
    name="UNIQUE_ID_OF_DIV"
    editorProps={{ $blockScrolling: true }}
  />,
  document.getElementById("example")
);
  • 方案二:匹配依赖版本
    如果修改导入后仍然报错,大概率是react-ace和ace-builds的大版本不兼容,执行以下命令重新安装最新匹配版本即可:
    npm uninstall react-ace ace-builds && npm install react-ace@latest ace-builds@latest
  • 方案三:更换压缩版导入路径
    部分构建工具(如Vite、Create React App)的tree shaking机制会误剔除未显式引用的ace核心代码,可以将导入路径替换为min压缩版路径,强制引入完整核心代码:
import "ace-builds/src-min-noconflict/ace";
import "ace-builds/src-min-noconflict/mode-java";
import "ace-builds/src-min-noconflict/theme-github";

内容的提问来源于stack exchange,提问作者abdellah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:48:02