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

为什么JavaScript ES模块的import/export语句运行报错?

问题原因

  • 导入导出语法不匹配:foo1.js中使用的是命名导出语法export {a},未声明默认导出,但foo2.js使用了默认导入语法import a from "./foo1.js",两者不符合ES Module规范的对应规则:命名导出的变量必须用命名导入语法引入,默认导入仅能引入模块的default导出内容。
  • HTML脚本配置冗余:foo2.js已经依赖foo1.js,浏览器加载foo2.js时会自动拉取对应依赖,不需要单独引入foo1.js作为独立模块,当前的脚本引入顺序也属于不合理配置。

解决方案

可任选以下任意一种方案修复:

方案1:修改foo2的导入语法,适配foo1的命名导出

将foo2.js的导入语句调整为命名导入格式:

import {a} from "./foo1.js";
console.log(a);

方案2:修改foo1的导出语法,适配foo2的默认导入

将foo1.js的导出语句调整为默认导出格式:

const a = 2;
export default a;

修复语法问题后,可清理HTML中的冗余脚本引入,仅保留foo2.js的引入即可:

<script src='./scripts/foo2.js' type='module'></script>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:27:02