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

在HTML中引入脚本遇Uncaught SyntaxError模块导入错误求助

解决浏览器中“Uncaught SyntaxError: Cannot use import statement outside a module”错误

核心解决方案:声明脚本为ES模块

浏览器默认将脚本当作传统非模块代码处理,不支持import语法。你需要修改HTML中的脚本引入标签,添加type="module"属性:

<script type="module" src="scripts.js"></script>

这是让浏览器识别ES模块的关键步骤,也是最直接有效的解决方式。

为什么你之前的尝试未生效?

  • package.json中的"type": "module"是Node.js环境专属配置,浏览器完全不识别,因此这个方案在浏览器端无效。
  • 将文件改为.mjs扩展名是可行的,但浏览器对.mjs的自动识别依赖环境,不如直接给.js脚本添加type="module"通用,无需修改文件名即可生效。

验证你的导入代码

你使用的CDN导入语句import confetti from "https://esm.run/canvas-confetti@1";是有效的,该CDN提供符合ES模块规范的代码,浏览器可以直接加载。

本地测试注意事项

如果直接通过file://协议(双击打开HTML文件)运行,浏览器的同源策略可能会阻止模块脚本加载,导致新的报错。解决方法是使用本地HTTP服务器运行项目:

  • 使用VS Code的Live Server插件
  • 执行python -m http.server(需安装Python 3)
  • 执行npx serve(需安装Node.js)

完整示例代码

HTML文件:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Confetti Easter Egg</title>
</head>
<body>
    <div id="dot_left">左侧彩蛋点</div>
    <div id="dot_right">右侧彩蛋点</div>
    <script type="module" src="scripts.js"></script>
</body>
</html>

你的scripts.js代码无需修改,保持原样即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 12:55:10