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

编译报错:无法从非ECMAScript模块导入'memo',求解决办法

解决@monaco-editor/react构建时memo导入报错问题

针对你遇到的构建阶段报错:无法从非ECMAScript模块导入命名导出'memo'(仅默认导出可用),可以尝试以下几种解决方案:

1. 调整包版本

这个问题多由版本兼容性导致,尝试切换到经过验证的稳定版本:

# 降级到v4.6.0(该版本对ES模块处理更友好)
npm install @monaco-editor/react@4.6.0 --save
# 或者升级至最新稳定版
npm install @monaco-editor/react@latest --save

2. 修改构建工具配置

根据你使用的构建工具添加对应配置,强制正确解析该包的模块:

Vite配置

在vite.config.js中优化依赖解析:

export default {
  optimizeDeps: {
    include: ['@monaco-editor/react'],
    esbuildOptions: {
      target: 'es2020'
    }
  }
}

Webpack配置

在webpack.config.js中添加转译规则:

module.exports = {
  module: {
    rules: [
      {
        test: /@monaco-editor\/react/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-react', '@babel/preset-env']
          }
        }
      }
    ]
  }
}

3. 调整导入语法

放弃直接命名导入,改用默认导入后解构的方式:

// 替换原命名导入
// import { memo } from '@monaco-editor/react';

// 使用默认导入后解构
import MonacoEditor from '@monaco-editor/react';
const { memo } = MonacoEditor;

4. 清理重复依赖

检查是否存在多版本的@monaco-editor/react,并清理:

# 查看依赖树
npm ls @monaco-editor/react
# 去重依赖
npm dedupe

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 11:35:07