# @browserless/devices 中文文档

规范地址：https://npmcn.com/package/%40browserless/devices/

版本：14\.0\.22
npm 元数据更新时间：2026-10-13T15:40:26.165Z
中文译文更新时间：2026-11-08T16:27:57.970Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40browserless/devices
原文对照：https://npmcn.com/package/%40browserless/devices/?lang=original
项目主页：https://browserless.js.org/#/?id=devices
源码仓库：https://github.com/microlinkhq/browserless#master

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

- 包体积（解压后）：12.7 kB，5 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>= 24
- 运行依赖：3 个
- 首次发布：2019-01-27T18:04:59.932Z
- 最新版本发布：2026-10-13T15:40:25.988Z
- 近 30 天下载量：19647（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：83（近 12 个月 12 个）

## 中文简介

用于浏览器测试的综合设备数据库. 以准确的取景口和用户代理数据来模拟手机,平板电脑和桌面.

## 安装

```sh
npm install @browserless/devices
```

也可以使用：`pnpm add @browserless/devices`、`yarn add @browserless/devices`、`bun add @browserless/devices`

## README

![browserless](https://github.com/microlinkhq/browserless/raw/master/static/logo-banner.png#gh-light-mode-only) ![browserless](https://github.com/microlinkhq/browserless/raw/master/static/logo-banner-light.png#gh-dark-mode-only)  
  
[![Powered by microlink.io](https://img.shields.io/badge/powered_by-microlink.io-blue?style=flat-square&color=%23EA407B)](https://microlink.io/) ![Last version](https://img.shields.io/github/tag/microlinkhq/browserless.svg?style=flat-square) [![Coverage Status](https://img.shields.io/coveralls/microlinkhq/browserless.svg?style=flat-square)](https://coveralls.io/github/microlinkhq/browserless) [![NPM Status](https://img.shields.io/npm/dm/browserless.svg?style=flat-square)](https://www.npmjs.org/package/browserless)  
  

> @ browserless/devices: 用于模拟目的的不同设备的集合.

见 [设备区域](https://browserless.js.org/#/?id=getdeviceoptions) 我们的网站有更多信息.

## 安装

使用 npm :

```sh
npm install @browserless/devices --save
```

## 关于

此软件包提供了 **设备描述器库** 用于浏览器模拟。 它用额外的桌面设备来扩展了Puppeteer的内置设备列表,并为设备名称解析提供了模糊的匹配能力.

### 这个软件包做什么

这个 `@browserless/devices` 软件包允许您 :

-   **模拟设备** 通过检索视图端口的尺寸、用户代理字符串以及设备能力
-   **使用模糊匹配** 来解析设备名称,即使有打字或大小写变化
-   **访问扩展设备列表** 包括从 Puppeteer 默认中丢失的桌面设备

### 设备属性

每个设备描述符包括:

| 财产 | 说明 |
| --- | --- |
| `userAgent` | 浏览器用户代理字符串 |
| `viewport.width` | 屏幕宽度, 像素 |
| `viewport.height` | 屏幕高度( 像素) |
| `viewport.deviceScaleFactor` | 设备像素比 (DPR) |
| `viewport.isMobile` | 是否是移动设备 |
| `viewport.hasTouch` | 设备是否有触摸支持 |
| `viewport.isLandscape` | 设备是否处于地貌模式 |

### 自定义设备

此软件包扩展 [傀儡人已知的装置](https://pptr.dev/api/puppeteer.knowndevices/) 带有额外的桌面设备。 Chrome用户代理(包括Puppeteer的Android描述符)在运行时间被改写到 `puppeteer.PUPPETEER_REVISIONS.chrome`. Safari/iOS描述符保持不变.

下面的桌面设备不携带自己的用户代理:它们提供取景口,用户代理内部的平台符号来自主机, `Macintosh; Intel Mac OS X 10_15_7` 在macOS上, `X11; Linux x86_64` 在Linux上, `Windows NT 10.0; Win64; x64` 在视窗上。 工人瞄准镜总是报告真正的主机平台,所以广告主机是保持 `navigator.platform` 客户端的提示是一致的.

| 设备 | 决议 | 缩放 |
| --- | --- | --- |
| `Macbook Pro 13` | 1280×800 (中文(简体) ) | 2个 |
| `Macbook Pro 15` | 1440×900 (中文(简体) ) | 2个 |
| `Macbook Pro 16` | 1536×960 (中文(简体) ) | 2个 |
| `iMac 21` | 1980×1080 (中文(简体) ) | 1个 |
| `iMac 21 4K` | 2048×1152 (中文(简体) ) | 2个 |
| `iMac 24 4.5K` | 4480×2520 (中文(简体) ) | 1个 |
| `iMac 27` | 2560×1440 (中文(简体) ) | 1个 |
| `iMac 27 5K` | 2560×1440 (中文(简体) ) | 2个 |

### 模糊设备名称匹配

何时 `lossyDeviceName` 启用( 默认) , 包使用模糊匹配来解析设备名称 :

```js
const createGetDevice = require('@browserless/devices')
const getDevice = createGetDevice({ lossyDeviceName: true })

// All of these resolve to "Macbook Pro 13"
getDevice({ device: 'Macbook Pro 13' })
getDevice({ device: 'macbook pro 13' })
getDevice({ device: 'MACBOOK PRO 13' })
getDevice({ device: 'macbook pro' })
getDevice({ device: 'macboo pro' })  // typo still works!
```

### 使用量

```js
const createGetDevice = require('@browserless/devices')
const getDevice = createGetDevice()

// Get device by name
const device = getDevice({ device: 'iPhone 13' })
// => { userAgent: '...', viewport: { width: 390, height: 844, ... } }

// Override viewport properties
const customDevice = getDevice({
  device: 'iPad',
  viewport: { isLandscape: true }
})

// Use custom headers
const withHeaders = getDevice({
  headers: { 'user-agent': 'googlebot' }
})

// Access all available devices
console.log(getDevice.deviceDescriptors)
```

### 如何适合在单体

这是一个 **独立工具包** 不依赖其他 `@browserless/*` 软件包。 其用为:

| 消费者 | 目的 |
| --- | --- |
| `@browserless/goto` | 导航到 URL 时设置视图端口和用户代理 |
| `browserless` (核心数) | 展览 `getDevice()` 浏览器上下文的方法 |

### 依赖关系

| 软件包 | 目的 |
| --- | --- |
| `didyoumean3` | 丢失设备名称分辨率的模糊字符串匹配 |
| `memoize-one` | Caches 设备查看性能 |
| `require-one-of` | 自动检测傀儡/傀儡核心安装 |

## 许可证

**@ 无浏览器/设备** © [微链接](https://microlink.io/),在 [麻省理工学院](https://github.com/microlinkhq/browserless/blob/master/LICENSE.md) 执照.  
作者和维护者 [微链接](https://microlink.io/) 由来自 [捐助者](https://github.com/microlinkhq/browserless/contributors)。 。 。 .

这个 [标志](https://thenounproject.com/term/browser/288309/) 设计由 [辛赫工作室](https://xinh.studio/)。 。 。 .

> [微链接.io](https://microlink.io/) • GitHub 软件 [微链克](https://github.com/microlinkhq) • X [@microlinkhq (英语)](https://x.com/microlinkhq)

## 常见问题

### @browserless/devices 是什么？

用于浏览器测试的综合设备数据库\. 以准确的取景口和用户代理数据来模拟手机,平板电脑和桌面\.

### 如何安装 @browserless/devices？

在项目目录运行 npm install @browserless/devices，或使用 pnpm add / yarn add / bun add。

### @browserless/devices 支持 TypeScript 吗？

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

### @browserless/devices 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @browserless/devices 需要什么版本的 Node\.js？

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

### @browserless/devices 可以商用吗？

@browserless/devices 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @browserless/devices 的下载量有多少？

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

### @browserless/devices 还在维护吗？

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

