html中使用type="module"可直接运行原生es模块,需声明脚本类型、遵守模块作用域、注意兼容性与路径规范:1. 用启用严格模式和import/export;2. 模块路径须含扩展名且为相对或绝对url;3. 遵循同源与cors规则,需本地服务器避免mime错误;4. 外部模块通过src引入,共享模块图但不共享全局变量。

在HTML中使用 type="module" 可以直接运行原生ES模块,无需构建工具。关键在于正确声明脚本类型、遵守模块作用域规则,并注意浏览器兼容性和路径规范。
1. 基础写法:用 type="module" 引入模块脚本
HTML中通过 <script type="module"></script> 声明一个ES模块脚本。它会按模块方式解析:启用严格模式、支持 import/export、具有独立作用域,且默认延迟执行(类似 defer)。
示例:
<script type="module">
import { greet } from './utils.js';
console.log(greet('World'));
</script>
2. 模块路径必须是相对或绝对URL,不能省略扩展名
浏览器要求模块导入路径显式包含文件后缀(如 .js),且不能是裸导入(如 import { x } from 'lodash' 不被支持)。
- ✅ 正确:
import utils from './utils.js'、import api from '/src/api/index.js' - ❌ 错误:
import utils from './utils'(缺少 .js)、import _ from 'lodash'(无CDN或打包支持)
3. 模块脚本自动遵循同源策略和CORS规则
如果模块文件来自其他域名或本地 file:// 协议,浏览器会拒绝加载(CORS错误)。开发时建议用本地服务器(如 npm run serve、python -m http.server 或 VS Code Live Server 插件)。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
常见报错提示:
Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/plain". → 说明服务器未返回Content-Type: application/javascript,需检查服务配置。
4. 外部模块脚本也支持 type="module"
可以把模块逻辑拆到外部文件,再通过 src 引入:
<script type="module" src="./main.js"></script>
此时 main.js 内可自由使用 import,且多个 type="module" 脚本共享同一模块图(不会重复执行同一模块)。
注意:type="module" 脚本不与传统脚本共享全局变量,window 上挂载的变量默认不可见。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










