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

使用require导入chessjs出现ERR_REQUIRE_ESM错误,求解决方案

解决chess包require导入失败的问题

问题根源

当前chess包已切换为ES模块(ESM),而你的代码采用CommonJS规范的require()语法加载,两者不兼容,因此触发ERR_REQUIRE_ESM错误。

可行解决办法

1. 用动态import适配CommonJS环境

在CommonJS脚本中,通过异步动态导入来加载ES模块:

async function setupChess() {
  const { default: Chess } = await import('chess');
  const chess = new Chess();
  // 这里写你的业务逻辑
}
setupChess();

2. 把你的代码转为ES模块

  • 方式一:将脚本文件后缀改为.mjs,使用ESM的import语法:
import Chess from 'chess';
const chess = new Chess();
  • 方式二:在项目根目录的package.json中添加配置,让所有.js文件默认以ES模块解析:
{
  "type": "module"
}

之后直接用import语法导入即可。

3. 降级到支持CommonJS的旧版本(不推荐)

如果必须坚持用require(),可以安装尚未转为ESM的旧版本:

npm install chess@0.12.0

⚠️ 注意:旧版本可能缺失新特性和安全补丁,仅作为临时方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:45:35