运行常见的 Chromium 与 Gecko 分支:既可以直接按名称运行(Extension.js
会为你定位已安装的二进制),也可以显式提供二进制路径。
在同一套 Extension.js 工作流中测试 Brave、Opera、Vivaldi、Yandex、Waterfox 与 LibreWolf。既可以直接指定分支名称,也可以在 dev、start 与 preview 中通过二进制 flag 与 extension.config.* 指向任意自定义二进制。
按名称运行分支
这些分支是一等公民的浏览器目标。把名称传给 --browser,Extension.js 会自动在你的系统上找到已安装的二进制,并通过其引擎家族的启动器运行:
如果该浏览器未安装,Extension.js 会带上安装指引退出。具名分支会继承其家族的 manifest 键,因此带 chromium:/firefox: 前缀的字段会被正确解析(参见 按浏览器划分的 manifest 字段)。
dev、build、start 与 preview 的帮助输出都会列出全部分支名称。start
与 preview 的列表里没有 safari 和 webkit-based,因为这两个命令按设计就拒绝
Safari 目标。
运行自定义二进制
要运行没有内置定位器的浏览器,或覆盖已定位到的二进制,请使用以下任一 flag:
--chromium-binary <path>
--gecko-binary <path>(别名:--firefox-binary <path>)
无论你选择了哪个具名浏览器目标,这些二进制 flag 都会覆盖 Extension.js 实际启动的浏览器二进制。
二进制能力
CLI 示例
它们也可以与 start 和 preview 搭配使用。
按操作系统找到二进制路径
二进制 flag 期望的是一个可执行文件。无效的路径会立即以错误失败,而不会启动。
macOS
在 macOS 上,/Applications/Brave Browser.app 这样的 app 是一个文件夹,不是可执行文件。请传入 bundle 内部 Contents/MacOS 下的可执行文件:
可执行文件的名字可能和 app 名不同。列出该文件夹来找到它:
Windows
给路径加引号并使用正斜杠,所有 shell 都接受这种写法:
反斜杠也可以用,但许多 shell 要求你写成双反斜杠,例如 C:\\Program Files\\...。
Linux
传入你的包管理器安装的可执行文件:
当二进制在你的 PATH 上时,运行 which brave-browser 打印它的路径。
在 extension.config.* 中配置
你也可以把二进制路径放在命令块中:
目标映射行为
二进制提示会映射到引擎目标:
chromiumBinary → chromium-based
geckoBinary / firefoxBinary → gecko-based
如果两者都提供,Extension.js 会先解析 Chromium 二进制。
可用浏览器
带内置定位器的分支可按名称运行;其他任何浏览器则通过二进制 flag 运行:
重要约束
chromium-based 需要 --chromium-binary(或配置中的 chromiumBinary)。没有它,启动会直接以错误退出,不会回退到系统浏览器。
gecko-based / firefox-based 需要一个有效的 geckoBinary 路径。
- 无效路径会以清晰的 CLI / 运行时错误立即失败。
build 不接受二进制 flag。基于二进制的启动只能配合 dev、start 与 preview 使用。
Edge 二进制覆盖
设置 EDGE_BINARY 环境变量,可以在不改动配置的情况下用指定的二进制启动 --browser=edge:
如果该路径不存在,启动会直接失败,而不会静默回退。
不启动浏览器运行
有时候正确的浏览器数量是零,比如在容器里、通过 SSH,或者你自己驱动一个浏览器时。
给 dev、start 或 preview 传 --no-browser:
开发循环依然完整。服务器监视你的文件,每次重建都会广播一次重载。首次编译成功后,终端会打印一条 (no-browser mode) 横幅,指出输出文件夹。
把那个 dist/<browser> 文件夹加载进你已经在运行的浏览器。在 Chromium 系浏览器中,开启开发者模式后在 chrome://extensions 选择 “Load unpacked”。加载的扩展会随保存持续更新。关于用 --wait 做就绪同步,见 dev。
要把它设为某个命令的默认行为,在配置中设置 noBrowser。CLI flag 优先于配置值:
退出注入的默认值
dev、start 与 preview 会向每个会话注入启动默认值。一个肉眼可见的默认值是深色外观。Chromium 目标会得到 --force-dark-mode 与 --enable-features=WebUIDarkMode flag。Gecko 目标会得到对应的深色 preferences。
要保留你的系统外观,把该 flag 列入 excludeBrowserFlags:
排除 --force-dark-mode 会丢弃整个外观包,包括 Gecko 的 preferences。排除条目也按开关名匹配,所以 --enable-features 会移除 --enable-features=WebUIDarkMode。默认 flag 清单和完整排除规则见浏览器 flag。
最佳实践
- 二进制与显式浏览器目标搭配:使用
--browser=chromium-based 或 --browser=gecko-based,让意图更可预期。
- 使用绝对路径:避免与 shell 相关的路径解析问题。
- 在 CI runner 上锁定版本:让浏览器二进制路径在自动化检查中保持确定性。
- 谨慎与 profile / flag 组合:复用与具名浏览器目标相同的 profile 与 flag 策略。
下一步