Script 标签中的 export 报错

在 script 标签中使用 export 需要添加 type="module" 属性

问题

直接在 <script> 标签中写 export 为什么会报错?

解答

浏览器中的 <script> 标签默认加载的是普通脚本,不支持 ES6 模块语法(如 exportimport)。如果要使用模块语法,必须显式声明为模块类型。

普通脚本(会报错)

<script>
  export const name = 'test'; // ❌ 报错:Unexpected token 'export'
</script>

模块脚本(正确)

<script type="module">
  export const name = 'test'; // ✅ 正常工作
</script>

引入外部文件

<!-- 普通脚本 -->
<script src="script.js"></script>

<!-- 模块脚本 -->
<script type="module" src="module.js"></script>

关键点

  • <script> 标签默认加载普通脚本,不支持 export/import 语法
  • 使用 ES6 模块语法必须添加 type="module" 属性
  • 模块脚本默认是严格模式,且具有独立作用域