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

使用Axios 1.2.1搭配esm包时出现ERR_REQUIRE_ESM错误求助

解决Axios 1.2.1搭配esm包触发ERR_REQUIRE_ESM错误的方案

原因分析

Axios从1.0.0版本起就切换为纯ES模块(ESM)发布,不再支持CommonJS的require()调用方式。而esm模块的作用是让Node.js的CommonJS环境兼容ES模块语法,但它加载纯ESM格式的Axios时,内部的require()逻辑会和Axios的ESM格式冲突,导致抛出错误。Axios 0.21.1是旧版本,当时还是CommonJS格式,所以能正常运行。

解决办法

这里提供三种可行方案:

方案1:用Node.js原生ESM支持,弃用esm包

  • 在项目根目录创建package.json,添加配置:
    {
      "type": "module"
    }
    
  • 直接运行代码:
    node index.js
    
    Node.js 14.13.0及以上版本已经原生支持ES模块,完全不需要依赖esm就能正常导入Axios。

方案2:改用动态导入适配esm

如果必须保留esm的使用场景,把静态import改成动态import()即可:
修改index.js代码:

(async () => {
  const axios = await import('axios');
  console.log(axios.default); // ESM导出的Axios需要取default属性
})();

然后继续用原来的命令运行:

node -r esm index.js

方案3:降级Axios到兼容版本

如果不想改代码和运行方式,直接降级到Axios 0.21.1这类CommonJS格式的旧版本:

npm i axios@0.21.1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 10:55:23