# @eyeo/get-browser-binary 中文文档

规范地址：https://npmcn.com/package/%40eyeo/get-browser-binary/

版本：0\.26\.0
npm 元数据更新时间：2026-11-13T13:31:03.442Z
中文译文更新时间：2026-11-14T06:31:35.067Z
软件包许可：GPL-3\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40eyeo/get-browser-binary
原文对照：https://npmcn.com/package/%40eyeo/get-browser-binary/?lang=original
项目主页：https://gitlab.com/eyeo/developer-experience/get-browser-binary#readme
源码仓库：https://gitlab.com/eyeo/developer-experience/get-browser-binary

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：144 kB，39 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=22
- 运行依赖：4 个
- 首次发布：2022-07-07T16:05:14.934Z
- 最新版本发布：2026-09-30T11:47:13.434Z
- 近 30 天下载量：8218（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：35（近 12 个月 10 个）

## 中文简介

安装浏览器二进制并匹配网络驱动器

## 安装

```sh
npm install @eyeo/get-browser-binary
```

也可以使用：`pnpm add @eyeo/get-browser-binary`、`yarn add @eyeo/get-browser-binary`、`bun add @eyeo/get-browser-binary`

## README

# 获取浏览器二进制

为 Chromium、 Chrome 安装特定浏览器版本用于测试、 Firefox 边缘及其相配 [硒网司机](https://www.selenium.dev/selenium/docs/api/javascript/index.html)。 。 。 .

## 开始

下面的样本显示如何安装最新的铬并使用 硒网驱动器:

```javascript
import { BROWSERS } from "@eyeo/get-browser-binary";

(async function example() {
  let { binary } = await BROWSERS.chromium.installBrowser("latest");
  console.log(`Chromium executable location: ${binary}`);

  let driver = await BROWSERS.chromium.getDriver("latest");
  await driver.navigate().to("https://example.com/");
  await driver.quit();
})();
```

[测试/浏览器.js](https://gitlab.com/eyeo/developer-experience/get-browser-binary/-/blob/main/test/browsers.js) 提供了图书馆的其他用法实例.

详情请查阅 [API 文档](https://gitlab.com/eyeo/developer-experience/get-browser-binary/-/jobs/artifacts/main/file/docs/index.html?job=docs)。 。 。 . 如果您已经在文档页面上, 您可以在 右边.

### 支持的浏览器版本

-   铬 127
-   测试颜色 127
-   Firefox 128 (英语)
-   Edge 127 (Linux), Edge 最新版本 (MacOS, Windows)

这些遵循了由eyo扩展支持的浏览器版本. 版本数 的浏览器折旧政策.

#### 用于测试的铬与铬

两者都以铬为原料,但来自不同的配电管道:

**铬** 由开源铬项目建造。 快照构建为 由他们的承诺而不是稳定的版本串识别, 和克流克流必须分别源码并手动同步. 抓图 由于老建筑可能会从CDN中消失,因此无法保证供应.

Chromium同时支持MV2和MV3.

**测试用铬(CfT)** 是Google官方发布的 专门用于自动化测试。 关键差异 :

-   每个发行由稳定的Chrome版本字符串(例如. `113.0.5672.0`(中文(简体) ) 以及带有相配色相的船舶,消除了版本不匹配的问题.
-   发行版被永久存档,因此被封装的版本仍然可以再出.
-   可通过 [测试可用性仪表板的颜色](https://googlechromelabs.github.io/chrome-for-testing/)。 。 。 .
-   仅支持MV3.

就CI管道而言,试验的铬比较可取,因为 有版本,配对的铬河分布使得能建立更可再生.

当需要MV2支持时,铬快照仍然有用.

### 微博记录

设定 `VERBOSE` 环境变量改为 `"true"` 获取动词记录 下载请求.

### 离线执行

可以运行浏览器离线,只要它们以前是 已安装。 示例

```javascript
// Online
let { binary } = await BROWSERS[browser].installBrowser(version);
console.log(binary); // keep the browser binary location to use it offline
let driver = await BROWSERS[browser].getDriver(version); // let the driver binary download

// Offline
let customBrowserBinary = "<browser binary location>";
let driver = await BROWSERS[browser].getDriver(version, {
  customBrowserBinary,
});
```

## 发展

### 先决条件

-   节点 QQ 18
-   npm 第9页
-   `unzip` 在 Linux 和 macOS 上,需要安装 Chromium 和 Chrome 用于 测试( Windows 使用内置 `tar.exe`(中文(简体) )

### 安装/更新依赖关系

```shell
npm install
```

### 忽略/ 缓存的文件夹

所有浏览器和 Webdriver 文件将提取到 `./browser-snapshots` 文件夹,它可能被忽略(例如将其添加到 `.gitignore`) (中文(简体) ).

另一方面, `./browser-snapshots/<browser_name>/cache` 将持有所有 下载所需的安装文件 `<browser_name>`因此,这可能是 用于添加 `./browser-snapshots/*/cache` 中缓存文件夹列表 您的线程配置 .

## 定型和格式化

```shell
npm run lint         # ESLint + Prettier check
npm run lint-fix     # auto-fix ESLint issues and reformat with Prettier
```

## 测试

运行所有测试 :

```shell
npm test
```

### 选项

这个 `grep` 选项过滤要用正则表达式运行的测试。 示例

```shell
npm test -- --grep "chromium.*latest"
```

这个 `timeout` 选项将超过 `.mocharc.json`。 。 。 . 增加超时可能对缓慢的连接环境有用:

```shell
npm test -- --timeout <ms>
```

默认情况下,测试会删除 `./browser-snapshots` 每个字之前 `Browser` 套间 运行。 为了改变行为,你可以设置 `TEST_KEEP_SNAPSHOTS` 环境 变量为 `true`示例:

```shell
TEST_KEEP_SNAPSHOTS=true npm test
```

### 测试服务器

测试使用本地 http 服务器, 该服务器由 `npm test` 命令。 若为 ,测试服务器也可以独立运行 :

```shell
npm run test-server
```

然后可以在单独的会话中进行测试. 示例

```shell
npm run test-suite -- --grep "chromium.*latest"
```

### 正在对 Docker 进行测试

有助于复制环境 `test:browsers:linux` 任务.

#### 英特尔/AMD架构

```shell
docker build -f test/docker/Dockerfile -t browsers .
docker run --shm-size=512m -it browsers
```

这个 `grep` 财务报告和审定财务报表 `timeout` 选项也可以通过 `TEST_ARGS` 参数 :

```shell
docker run --shm-size=512m -e TEST_ARGS="--grep chromium.*latest --timeout 100000" -it browsers
```

#### ARM架构 (M1/M2 苹果硅)

跑步是模拟AMD架构完成的. 所需经费:

-   (文图拉)
-   罗塞塔
-   在多克启用了“使用Rosetta在苹果硅上模拟x86/amd64”的功能

这个 `--platform` 选项

```shell
docker run --platform linux/amd64 --shm-size=512m -e TEST_ARGS="--grep chromium.*latest" -it browsers
```

### 在 macOS 中装入扩展

macOS TCC(透明度、同意性和控制性) 增加额外保护 以下文件夹 :

-   文档
-   下载
-   桌面

如果扩展名恰好位于部队派遣国文件夹内,则Chrome试图 装入,macOS拒绝他们访问.

通常接下来是权限对话框 。 但是,在无头模式下,没有 显示权限对话框, 而扩展未静默地加载 .

之后的错误可能大相径庭。 这里有一个例子:

```
         updates an extension:
     TimeoutError: /index.html did not open
Wait timed out after 8008ms
```

为避免这类问题,将扩展文件夹移出受部队派遣国保护的文件夹 目录(例如直接在您主目录下).

## 编制文件

```shell
npm run docs
```

## 发布指令

发布指令在 [GitLab 维基百科](https://gitlab.com/eyeo/developer-experience/get-browser-binary/-/wikis/home)。 。 。 .

重置依赖于 `get-browser-binary` (例如:. `Extensions` 财务报告和审定财务报表 `testpages.adblockplus.org`(中文(简体) ) 需要更新,以便在发布后消耗新版本.

## 行为守则

这个项目的所有参与者都必须阅读并跟踪我们 [行为守则](https://npmcn.com/package/%40eyeo/get-browser-binary/CODE_OF_CONDUCT.md)。 。 。 .

## 常见问题

### @eyeo/get-browser-binary 是什么？

安装浏览器二进制并匹配网络驱动器

### 如何安装 @eyeo/get-browser-binary？

在项目目录运行 npm install @eyeo/get-browser-binary，或使用 pnpm add / yarn add / bun add。

### @eyeo/get-browser-binary 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/eyeo\_\_get-browser-binary 是否存在。

### @eyeo/get-browser-binary 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @eyeo/get-browser-binary 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @eyeo/get-browser-binary 可以商用吗？

@eyeo/get-browser-binary 使用 GPL-3\.0 许可。强 Copyleft：分发包含该代码的软件时，整个作品需以 GPL-3\.0 兼容许可开源，并附带专利与反锁定条款。仅内部使用不触发此义务。以上为概括，不构成法律意见，请以许可原文为准。

### @eyeo/get-browser-binary 的下载量有多少？

根据 npm 官方下载统计，@eyeo/get-browser-binary 在 2026/10/14 – 2026/11/12 这 30 天内被下载 8,218 次，日均约 274 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @eyeo/get-browser-binary 还在维护吗？

最新版本 0\.26\.0 发布于 2026/09/30（1 个月前）；至今共发布 35 个版本，其中过去 12 个月发布了 10 个；首次发布于 2022/07/08。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

