@browserless/devices

中文文档
14.0.22发布于 2026/10/13MITCommonJS近 30 天下载 2万

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

中文使用文档
文档目录10 节
  1. 安装
  2. 关于
  3. 这个软件包做什么
  4. 设备属性
  5. 自定义设备
  6. 模糊设备名称匹配
  7. 使用量
  8. 如何适合在单体
  9. 依赖关系
  10. 许可证
browserless browserless

Powered by microlink.io Last version Coverage Status NPM Status

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

见 设备区域 我们的网站有更多信息.

安装

使用 npm :

npm install @browserless/devices --save

关于

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

这个软件包做什么

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

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

设备属性

每个设备描述符包括:

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

自定义设备

此软件包扩展 傀儡人已知的装置 带有额外的桌面设备。 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 131280×800 (中文(简体) )2个
Macbook Pro 151440×900 (中文(简体) )2个
Macbook Pro 161536×960 (中文(简体) )2个
iMac 211980×1080 (中文(简体) )1个
iMac 21 4K2048×1152 (中文(简体) )2个
iMac 24 4.5K4480×2520 (中文(简体) )1个
iMac 272560×1440 (中文(简体) )1个
iMac 27 5K2560×1440 (中文(简体) )2个

模糊设备名称匹配

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

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!

使用量

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-oneCaches 设备查看性能
require-one-of自动检测傀儡/傀儡核心安装

许可证

@ 无浏览器/设备 © 微链接,在 麻省理工学院 执照.
作者和维护者 微链接 由来自 捐助者。 。 。 .

这个 标志 设计由 辛赫工作室。 。 。 .

微链接.io • GitHub 软件 微链克 • X @microlinkhq (英语)

版本与发布记录

@browserless/devices 共发布 83 个版本,首次发布于 2019/01/28;过去 12 个月发布了 12 个版本。

版本发布日期距今
14.0.22latest2026/10/1326 天前
14.0.02026/10/081 个月前
13.9.222026/09/141 个月前
13.9.142026/09/101 个月前
13.9.102026/09/022 个月前
13.9.02026/08/252 个月前

关于 @browserless/devices 的常见问题

@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 和提交记录判断。