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,但一开始未解决问题,最终找到有效方案。
错误原因分析
- 导出与导入不匹配:
esModules.js中用的是具名导出(export const add),但初始代码用的是默认导入(import add from "./esModules.js"),两者不匹配导致报错。 - 函数无返回值:
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
相关产品推荐
相关产品推荐

