面向 TypeScript 与 JavaScript 的通用日志库,支持美化终端输出、结构化 JSON、敏感信息脱敏,且无运行时依赖。
ehmicky/modern-errors
一个 JavaScript/TypeScript 错误处理库,用于创建错误类、包装与聚合错误,并规范化无效异常。
- Star
- 1,487
- Fork
- 20
- 未关闭 Issue
- 1
- 最近提交
- 9天前
这是什么?
modern-errors 是一个 JavaScript 错误处理库,可在 Node.js 和浏览器中以统一方式处理错误。通过简单的子类 API 即可定义错误类,为错误附加自定义属性,并使用标准的 cause 选项包装内部错误,同时保留内层错误的消息、堆栈和类信息。
该库还会把被抛出的无效值(如字符串或非 Error 实例的对象)规范化为正规的错误实例。在模块入口处调用 BaseError.normalize(),可确保所有抛出的错误都有效,并归入已知错误类或默认的 UnknownError,便于区分预期故障与程序缺陷。
功能可通过插件扩展,包括序列化、CLI 错误处理、美化堆栈输出、HTTP 错误响应以及 Winston 日志记录。该包为 ES 模块,提供严格的 TypeScript 类型,要求 Node.js 18.18.0 或更高版本。
核心功能
- 01通过简单的子类 API 创建错误类。
- 02为错误附加自定义属性,支持不可枚举的内部属性。
- 03使用标准 cause 选项包装内部错误,合并消息与堆栈。
- 04将多个错误聚合为一个,适用于自定义错误类。
- 05将无效的抛出值规范化为正规错误实例。
- 06通过插件扩展功能,并提供严格的 TypeScript 类型。
适用场景
- 为 Node.js 或浏览器库定义一套共享的错误类。
- 在模块边界区分预期的用户输入错误与意外的程序缺陷。
- 在错误向上层传递时补充上下文信息。
- 借助 serialize 插件将错误序列化为 JSON 并还原。
快速上手
- 1
使用 npm 安装该库
npm install modern-errors - 2
使用 ModernError.subclass 创建错误类并在需要处导入
使用前须知
- 需要 Node.js 18.18.0 或更高版本。
- 仅为 ES 模块,不能使用 require() 加载。
标签
常见问题
- modern-errors 是什么?
- 一个 JavaScript/TypeScript 错误处理库,用于创建错误类、包装与聚合错误,并规范化无效异常。 modern-errors 是一个 JavaScript 错误处理库,可在 Node.js 和浏览器中以统一方式处理错误。通过简单的子类 API 即可定义错误类,为错误附加自定义属性,并使用标准的 cause 选项包装内部错误,同时保留内层错误的消息、堆栈和类信息。
- modern-errors 可以免费使用吗?用的什么许可证?
- modern-errors 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- modern-errors 还在维护吗?
- 活跃维护中。modern-errors 最近一次提交是在 2026年10月13日。
- modern-errors 适合用来做什么?
- 为 Node.js 或浏览器库定义一套共享的错误类。 在模块边界区分预期的用户输入错误与意外的程序缺陷。 在错误向上层传递时补充上下文信息。 借助 serialize 插件将错误序列化为 JSON 并还原。
- modern-errors 怎么安装和运行?
- 使用 npm 安装该库: npm install modern-errors 使用 ModernError.subclass 创建错误类并在需要处导入
- 在哪里获取 modern-errors?
- 源代码和安装说明在 GitHub 上:https://github.com/ehmicky/modern-errors
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
用 TypeScript 重新实现的 ADB 客户端,可在 Chromium 浏览器、Node.js 和 Electron 中通过 WebUSB 连接安卓设备。
一个纯 JavaScript 库,可在浏览器和 Node.js 中从图片提取主色和调色板。
一款 VSCode 扩展,将 TypeScript 报错信息整理为易读、带语法高亮的类型展示,并提供相关文档链接。
一款命令行工具,对项目代码质量打分,覆盖 14 种语言,并按文件给出排名报告。
开源 API 与集成测试工具,通过 eBPF 录制真实流量并回放为测试和数据 Mock,无需修改代码。