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

Edge浏览器中Canvas游戏JS模块导入报错问题求助

解决Edge浏览器中JS模块导入报错的问题

嘿,这个问题我之前帮不少做Canvas游戏的开发者搞定过,Edge抛出的「Module import or export statement unexpected here」错误,核心原因其实很明确:浏览器没把你的init.js当成ES模块来解析——普通的JS脚本里是不允许使用import/export这类模块语法的,自然就会报错啦。

下面给你几个针对性的解决步骤:

  • 修改HTML的脚本引入方式
    你肯定是直接用普通<script>标签引入的init.js,只要给标签加上type="module"属性,浏览器就会把它当作ES模块处理,就能识别import语句了:

    <script type="module" src="init.js"></script>
    
  • 确认模块路径的正确性
    你的代码里用了import {Tram} from "./tram/tram",这里的相对路径写法是对的——模块导入必须用./开头的相对路径或者绝对路径,不能省略前缀,这点继续保持就好。另外要确保tram.js文件里确实用export class Tram { ... }导出了这个类哦。

  • 检查Edge浏览器版本
    现在基于Chromium内核的Edge完全支持ES模块,但如果是非常老旧的EdgeHTML版本(比如Edge 18及以前),那确实不支持模块语法,这种情况建议直接升级浏览器就行,毕竟现在很少有人用旧版Edge了。

  • 额外注意模块作用域的差异
    ES模块里的变量默认是模块私有作用域,不会像普通脚本那样自动挂载到全局对象上。比如你代码里的canvas、ctx这些变量,如果其他脚本需要访问它们,要么通过export导出,要么手动挂载到window上(比如window.canvas = canvas),不过更推荐保持模块化的写法,避免全局变量污染。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:19:00