Bun的--watch模式实时更新失效问题求助
Bun --watch/--hot模式在Windows子系统Linux环境下不生效的排查方案
在Windows的Linux子环境(如WSL1/WSL2)中使用Bun运行代码时,添加--watch或--hot参数后,修改代码无法触发进程自动重启,终端仅打印一次启动日志,必须手动重启才能看到代码变更效果。
用户代码示例:
import { serve } from "bun"; console.log("I restarted at:", Date.now()); serve({ port: 4003, fetch(request) { return new Response("Susdsdp"); }, });
以下是排查方向:
- 迁移代码到Linux原生文件系统:如果代码存放在Windows宿主的挂载目录(如
/mnt/c/你的项目路径),WSL对这类目录的文件变更通知支持存在限制,Bun的watch机制可能无法感知到文件修改。把项目移到Linux子系统的原生路径(如/home/你的用户名/项目目录)再测试。 - 升级Bun到最新版本:运行
bun --version查看当前版本,旧版本可能存在跨环境的watch兼容性bug。执行bun upgrade升级到最新稳定版后重试。 - 显式指定监听目标:运行命令时明确指定要监听的文件或目录,比如
bun --watch ./index.js,避免Bun未正确识别监听范围。 - 切换WSL版本:如果当前用的是WSL1,尝试切换到WSL2。WSL2的文件系统架构更接近原生Linux,文件变更通知的支持更完善。可通过
wsl --list --verbose查看当前分发版版本,用wsl --set-version <分发版名称> 2完成切换。 - 检查文件权限:确保Linux环境下项目文件的权限允许Bun读取和监听。用
ls -l查看文件权限,若权限不足,可执行chmod -R 755 项目目录调整。
内容的提问来源于stack exchange,提问作者Lin ku
相关产品推荐
相关产品推荐

