Skip to main content
运行常见的 Chromium 与 Gecko 分支:既可以直接按名称运行(Extension.js 会为你定位已安装的二进制),也可以显式提供二进制路径。 在同一套 Extension.js 工作流中测试 Brave、Opera、Vivaldi、Yandex、Waterfox 与 LibreWolf。既可以直接指定分支名称,也可以在 devstartpreview 中通过二进制 flag 与 extension.config.* 指向任意自定义二进制。

按名称运行分支

这些分支是一等公民的浏览器目标。把名称传给 --browser,Extension.js 会自动在你的系统上找到已安装的二进制,并通过其引擎家族的启动器运行:
如果该浏览器未安装,Extension.js 会带上安装指引退出。具名分支会继承其家族的 manifest 键,因此带 chromium:/firefox: 前缀的字段会被正确解析(参见 按浏览器划分的 manifest 字段)。
devbuildstartpreview 的帮助输出都会列出全部分支名称。startpreview 的列表里没有 safariwebkit-based,因为这两个命令按设计就拒绝 Safari 目标。

运行自定义二进制

要运行没有内置定位器的浏览器,或覆盖已定位到的二进制,请使用以下任一 flag:
  • --chromium-binary <path>
  • --gecko-binary <path>(别名:--firefox-binary <path>
无论你选择了哪个具名浏览器目标,这些二进制 flag 都会覆盖 Extension.js 实际启动的浏览器二进制。

二进制能力

CLI 示例

它们也可以与 startpreview 搭配使用。

按操作系统找到二进制路径

二进制 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.* 中配置

你也可以把二进制路径放在命令块中:

目标映射行为

二进制提示会映射到引擎目标:
  • chromiumBinarychromium-based
  • geckoBinary / firefoxBinarygecko-based
如果两者都提供,Extension.js 会先解析 Chromium 二进制。

可用浏览器

带内置定位器的分支可按名称运行;其他任何浏览器则通过二进制 flag 运行:

重要约束

  • chromium-based 需要 --chromium-binary(或配置中的 chromiumBinary)。没有它,启动会直接以错误退出,不会回退到系统浏览器。
  • gecko-based / firefox-based 需要一个有效的 geckoBinary 路径。
  • 无效路径会以清晰的 CLI / 运行时错误立即失败。
  • build 不接受二进制 flag。基于二进制的启动只能配合 devstartpreview 使用。

Edge 二进制覆盖

设置 EDGE_BINARY 环境变量,可以在不改动配置的情况下用指定的二进制启动 --browser=edge
如果该路径不存在,启动会直接失败,而不会静默回退。

不启动浏览器运行

有时候正确的浏览器数量是零,比如在容器里、通过 SSH,或者你自己驱动一个浏览器时。 devstartpreview--no-browser
开发循环依然完整。服务器监视你的文件,每次重建都会广播一次重载。首次编译成功后,终端会打印一条 (no-browser mode) 横幅,指出输出文件夹。 把那个 dist/<browser> 文件夹加载进你已经在运行的浏览器。在 Chromium 系浏览器中,开启开发者模式后在 chrome://extensions 选择 “Load unpacked”。加载的扩展会随保存持续更新。关于用 --wait 做就绪同步,见 dev 要把它设为某个命令的默认行为,在配置中设置 noBrowser。CLI flag 优先于配置值:

退出注入的默认值

devstartpreview 会向每个会话注入启动默认值。一个肉眼可见的默认值是深色外观。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 策略。

下一步