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

ES Modules使用报错求助:模块未提供名为‘add’的导出项

ES Modules 报错:SyntaxError: The requested module './esModules.js' does not provide an export named 'add' 解决方法

问题场景

使用ES Modules时出现以下报错:

SyntaxError: The requested module './esModules.js' does not provide an export named 'add'

已在package.json中配置"type": "module",涉及代码如下:

index.js

import add from "./esModules.js";

let num1 = 15;
let num2 = 20;

console.log(add(num1, num2));

esModules.js

export const add = (num1, num2) => {
  result = num1 + num2;
};

曾尝试添加export default add;、用{ add }导入、去掉路径中的.js,但一开始未解决问题,最终找到有效方案。

错误原因分析

  1. 导出与导入不匹配:esModules.js中用的是具名导出(export const add),但初始代码用的是默认导入(import add from "./esModules.js"),两者不匹配导致报错。
  2. 函数无返回值:add函数仅计算了数值,但未返回结果,即便导入成功,调用后也会得到undefined,属于隐性问题。

最终解决方案

需同时修改两个文件:

1. 修正导出函数的返回值(esModules.js)

给函数添加return语句,确保返回计算结果:

export const add = (num1, num2) => {
  const result = num1 + num2;
  return result;
  // 或直接简写:return num1 + num2;
};

2. 使用具名导入匹配具名导出(index.js)

把导入语句改为具名导入:

import { add } from "./esModules.js";

let num1 = 15;
let num2 = 20;

console.log(add(num1, num2)); // 输出35

执行以上修改后,报错消失,代码可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 03:52:16