@browserless/errors

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

无头浏览器自动化强化出错处理. 为调试 Puppeteer 问题提供详细,可操作的错误消息.

中文使用文档
文档目录9 节
  1. 安装
  2. 关于
  3. 这个软件包做什么
  4. 错误类型
  5. 使用量
  6. 错误属性
  7. 如何适合在单体
  8. 依赖关系
  9. 许可证
browserless browserless

Powered by microlink.io Last version Coverage Status NPM Status

@ 浏览器无/ errors: Puppeteer 的合格错误集合 .

安装

使用 npm :

npm install @browserless/errors --save

关于

此软件包提供 标准化、限定性错误类型 用于Puppeteer和无浏览器操作。 它使原始浏览器出错正常化为一致的,打入有独特出错代码的出错,以便于调试和出错处理.

这个软件包做什么

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

  • 创建已输入错误 带有一致的结构和错误代码
  • 将原始错误规范化 从傀儡变成合格的 BrowserlessError 实例
  • 识别出错类型 程序上使用错误代码
  • 除错出错 内置序列化和记录

错误类型

错误厂代码说明
browserTimeoutEBRWSRTIMEOUT承诺或导航超时
protocolErrorEPROTOCOLChrome DevTools 协议错误
evaluationFailedEINVALEVAL页面评价/字符执行失败
contextDisconnectedEBRWSRCONTEXTCONNRESET浏览器上下文连接被重置
pageRangeEPAGERANGEprintToPDF 从文档末尾开始的页面范围

代码带有重试性: 核心重试 EPROTOCOL 财务报告和审定财务报表 EBRWSRCONTEXTCONNRESET没有别的. EPAGERANGE 之所以存在,是因为一个令人不满意的页面范围是决定性的一个协议失败——重试它会烧掉呼叫者的预算,并且会浮出一个超时,而不是真正的原因.

使用量

const errors = require('@browserless/errors')

// Create a timeout error
const timeoutError = errors.browserTimeout({ timeout: 30000 })
// => BrowserlessError: EBRWSRTIMEOUT, Promise timed out after 30000 milliseconds

// Create a protocol error
const protocolError = errors.protocolError({ message: 'Printing failed' })
// => BrowserlessError: EPROTOCOL, Printing failed

// Create an evaluation error
const evalError = errors.evaluationFailed({ message: 'foo is not defined' })
// => BrowserlessError: EINVALEVAL, foo is not defined

// Normalize a raw error from Puppeteer (page target gone mid-evaluate)
const rawError = { message: 'Protocol error (Runtime.evaluate): Target closed' }
const normalizedError = errors.ensureError(rawError)
// => BrowserlessError: EBRWSRCONTEXTCONNRESET, The browser context is not connected.

// Normalize a page range Chrome cannot satisfy
const rangeError = errors.ensureError({
  message: 'Protocol error (Page.printToPDF): Page range exceeds page count'
})
// => BrowserlessError: EPAGERANGE, Page range exceeds page count

// Check if an error is a BrowserlessError
if (errors.isBrowserlessError(normalizedError)) {
  console.log('Error code:', normalizedError.code)
}

有两个上游输出,用于在将一个原始错误归为正则之前对其进行分类:

errors.isContextDestroyed(rawError)    // frame torn down mid-flight — transient
errors.isPageRangeOvershoot(rawError)  // range starts past the last page — deterministic

错误属性

全体 BrowserlessError 实例包括:

财产说明
name永远 'BrowserlessError'
code独特的错误代码(例如, EBRWSRTIMEOUT(中文(简体) )
message人类可读错误消息前缀代码

如何适合在单体

这是一个 基础公用事业软件包 在整个无浏览器生态系统中使用:

消费者目的
browserless (核心数)以超时错误环绕操作, 常态化捕获错误
@browserless/goto处理导航和协议错误
@browserless/screenshot处理截图抓取错误
@browserless/pdf处理 PDF 生成错误

依赖关系

软件包目的
whoops用代码创建打入错误时出错工厂
ensure-error确保值是合适的出错实例
serialize-error调试日志的序列化错误
debug-logfmt结构化调试日志

许可证

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

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

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

版本与发布记录

@browserless/errors 共发布 76 个版本,首次发布于 2020/03/03;过去 12 个月发布了 22 个版本。

版本发布日期距今
14.0.22latest2026/10/1326 天前
14.0.02026/10/081 个月前
13.9.232026/09/141 个月前
13.9.112026/09/062 个月前
13.9.102026/09/022 个月前
13.6.102026/07/283 个月前

关于 @browserless/errors 的常见问题

@browserless/errors 是什么?

无头浏览器自动化强化出错处理. 为调试 Puppeteer 问题提供详细,可操作的错误消息.

如何安装 @browserless/errors?

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

@browserless/errors 支持 TypeScript 吗?

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

@browserless/errors 支持 ESM 还是 CommonJS?

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

@browserless/errors 需要什么版本的 Node.js?

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

@browserless/errors 可以商用吗?

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

@browserless/errors 的下载量有多少?

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

@browserless/errors 还在维护吗?

最新版本 14.0.22 发布于 2026/10/13(26 天前);至今共发布 76 个版本,其中过去 12 个月发布了 22 个;首次发布于 2020/03/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。