热重载
2026/5/17大约 1 分钟euvuirustwasmclihot-reload
使用热重载
启动 euv-cli 后,修改 crate 目录中的源文件,服务器会自动重新编译并刷新浏览器:
euv-cli run --crate-path ./example --www-dir ./www --port 3000工作流程
当源文件发生变更时,euv-cli 会按以下顺序处理:
- 文件变更检测 — 监视
src目录下的文件变更,通过.gitignore过滤不需要关注的文件 - 防抖处理 — 变更事件经过 500ms 防抖 + 300ms 延迟,避免短时间内频繁触发构建
- 自动格式化 — 变更触发后先对
src目录执行内置格式化(html!、class!、css_vars!、var!宏),再运行hyperlane-cli fmt - WASM 重新编译 — 执行
wasm-pack build重新编译项目 - 浏览器刷新 — 编译成功后通知浏览器自动刷新页面
提示
服务器会自动在 HTML 中注入重载脚本,无需手动添加。
重载机制
euv-cli 使用长轮询(long-polling)机制实现热重载:
- 浏览器持续请求
/__euv_reload端点 - 服务器在构建完成后返回 JSON 响应:
- 构建成功:
{"type":"Reload"}— 浏览器自动刷新页面 - 构建失败:
{"type":"Error","message":"..."}— 在控制台输出错误信息,1 秒后重新连接
- 构建成功:
.gitignore 过滤
euv-cli 会读取项目根目录下的 .gitignore 文件,被忽略的文件变更不会触发重新编译。
注意
同一时间只会执行一次构建,避免并发构建冲突。如果正在构建中,后续的文件变更会被跳过。