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

NodeJS导入@xenova/transformers遇ERR_REQUIRE_ESM错误求助

解决NodeJS中ES模块与CommonJS兼容的报错问题

问题根源

@xenova/transformers是纯ES模块,而你的lib/pinecone/utils.js是CommonJS模块(使用require语法),Node.js不支持直接在CommonJS模块中用require导入ES模块,因此抛出ERR_REQUIRE_ESM错误。

解决方法

方法1:将整个项目转为ES模块

  • 在项目根目录的package.json中添加配置:
    "type": "module"
    
    此配置会让项目中所有.js文件默认以ES模块方式解析。
  • 修改utils.js中的导入代码,替换为ES模块语法:
    import { AutoModel, AutoTokenizer } from '@xenova/transformers';
    
  • 注意:项目中所有原CommonJS写法(如module.exports、require)都需要替换为ES模块对应语法(export、import)。

方法2:在CommonJS中使用动态导入

如果不想修改整个项目的模块类型,可在utils.js中用异步动态导入替代require:

// 替换原require语句
async function syncProfilesOnPinecone() {
  // 动态导入ES模块
  const { AutoModel, AutoTokenizer } = await import('@xenova/transformers');
  // 后续正常使用
  const tokenizer = await AutoTokenizer.from_pretrained('bert-base-uncased');
  // ...其他逻辑
}
  • 动态导入是异步操作,需确保所在函数为async函数(你的syncProfilesOnPinecone已经是async函数,直接使用即可)。

额外说明

报错信息中的No storage option exists to persist the session警告是独立问题,与当前模块兼容错误无关。若要消除该警告,可找到相关认证代码,设置persistSession: false,或配置符合Node环境的存储选项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 23:53:23