dev 会话在文件变化时本来就会自动重载。reload 面向的是自动重载看不到的场景:你手工改动的状态、卡死的 service worker,或者需要在两次运行之间拿到干净上下文的测试。
会话必须在控制通道解锁的状态下运行:用 extension dev --allow-control 启动它。被拒绝时,报错会指出缺少的那个 flag。
何时使用 reload
- 后台 worker 里存着有问题的内存状态,你想干净地重启一次。
- 某个脚本写入了 storage 或触发了一段流程,之后需要一个全新的上下文。
- 你改了文件监视器视野之外的东西,想强制重新读取。
用法
参数与 flag
每种 context 分别重载什么
background会重启扩展本身,从而重启 service worker 并重新读取 manifest。content会重载承载目标内容脚本的标签页,让脚本重新注入。page把目标标签页当作普通页面重载一次。
inspect --list-tabs 找到数字形式的标签页 id。
失败模式
- 该浏览器没有对应会话:
E_SESSION_NOT_FOUND,并附上要运行的完整extension dev --allow-control命令。 - 会话运行时没有带
--allow-control:连接会被拒绝,报错会指出这个 flag。 --tab指定的 id 已经不存在:E_TARGET_NOT_FOUND。- 调用的耗时超过了
--timeout:E_TIMEOUT。
0,任何失败都是 1。机器消费方应当读取 --output json 输出的信封(参见 结果信封)。

