Skip to content

fix: Windows 下 bun dev 启动崩溃#236

Open
razzh7 wants to merge 1 commit intoErlichLiu:mainfrom
razzh7:fix/windows-dev-compat
Open

fix: Windows 下 bun dev 启动崩溃#236
razzh7 wants to merge 1 commit intoErlichLiu:mainfrom
razzh7:fix/windows-dev-compat

Conversation

@razzh7
Copy link
Copy Markdown

@razzh7 razzh7 commented Apr 11, 2026

问题

在 Windows 上执行 bun run dev 无法正常启动,存在两个问题:

  1. dev:kill / dev:electron 脚本不兼容 Windows

    • pkillsleep 是 Unix 命令,Windows 上不存在,导致脚本直接报错退出
  2. electronmon 热重载时崩溃(exit code 37)

    • electronmon 重启应用时,在 app.isReady() 之前就触发了 before-quit 事件
    • before-quit 中调用 globalShortcut.unregisterAll() 抛出 globalShortcut cannot be used before the app is ready 异常
    • 导致 electronmon 报 uncaught exception occured,应用无法启动

修复

  • 新增 scripts/dev-kill.ts:跨平台进程清理,Windows 用 taskkill,Unix 用 pkill
  • 新增 scripts/sleep.ts:跨平台 sleep,用 setTimeout 实现
  • 更新 package.jsondev:killdev:electron 使用上述跨平台脚本
  • global-shortcut-service.tsunregisterAllGlobalShortcuts() 添加 app.isReady() 守卫

测试

  • Windows 11 上 bun run dev 正常启动,electronmon 热重载正常

1. dev:kill / dev:electron 脚本使用了 pkill 和 sleep,Windows 不支持,
   替换为跨平台的 bun 脚本(scripts/dev-kill.ts、scripts/sleep.ts)
2. electronmon 热重载时在 app.isReady() 之前触发 before-quit,
   导致 globalShortcut.unregisterAll() 抛出 uncaught exception(exit code 37),
   添加 app.isReady() 守卫修复
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant