# clean-stack 中文文档

规范地址：https://npmcn.com/package/clean-stack/

版本：7\.0\.0
npm 元数据更新时间：2026-11-02T21:16:34.153Z
中文译文更新时间：2026-11-05T16:36:53.390Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/clean-stack
原文对照：https://npmcn.com/package/clean-stack/?lang=original
项目主页：https://github.com/sindresorhus/clean-stack#readme
源码仓库：https://github.com/sindresorhus/clean-stack

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

- 包体积（解压后）：18.9 kB，5 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.3
- 运行依赖：2 个
- 首次发布：2016-07-07T21:38:18.517Z
- 最新版本发布：2026-11-02T21:16:34.011Z
- 近 30 天下载量：182050531（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：23（近 12 个月 1 个）

## 中文简介

清理错误堆栈跟踪

## 安装

```sh
npm install clean-stack
```

也可以使用：`pnpm add clean-stack`、`yarn add clean-stack`、`bun add clean-stack`

## README

# 干净的垃圾

> 清理错误堆栈跟踪

删除大多数无益的内部节点.js条目.

同时在浏览器和Electron中工作.

## 安装

```sh
npm install clean-stack
```

## 使用量

```js
import cleanStack from 'clean-stack';

const error = new Error('Missing unicorn');

console.log(error.stack);
/*
Error: Missing unicorn
    at Object.<anonymous> (/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:139:18)
*/

console.log(cleanStack(error.stack));
/*
Error: Missing unicorn
    at Object.<anonymous> (/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15)
*/
```

## API 密码

### cleanStack( stack, 选项)

返回已清理的堆栈或 `undefined` 如果给定 `stack` 不是一个字符串.

#### 堆栈

类型 : `string | undefined`

这个 `stack` 财产 [`Error`](https://github.com/microsoft/TypeScript/blob/eac073894b172ec719ca7f28b0b94fc6e6e7d4cf/lib/lib.es5.d.ts#L972-L976),或 `undefined`。 。 。 .

#### 选项

类型 : `object`

##### 美丽

类型 : `boolean`  
默认 : `false`

校正堆栈中的文件路径 :

-   `/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15` → `~/dev/clean-stack/unicorn.js:2:15`
-   `file:///Users/sindresorhus/dev/clean-stack/unicorn.js:2:15` → `~/dev/clean-stack/unicorn.js:2:15`

启用后,文件 URL 被转换为正则路径,以提高可读性和IDE集成性. 无法转换的 URL, 包含 `?` 或者说 `#`,或解码为换行符.

`pretty` 财务报告和审定财务报表 `basePath` 只重写框架路径。 后鞭变成 `/` 每个框架。 错误消息文本除空白行外被保留;形状为帧的行被作为帧处理.

##### 基盘

类型 : `string?`

从堆栈跟踪文件路径中去除给定的基础路径,有效地将绝对路径变为相对路径. 它还会将绝对文件 URL 转换成相对路径.

支持绝对路径或相对路径,或者分隔符,以及文件系统根. 领先斜线只匹配绝对路径 。 内部相对的基础路径不匹配 `file:///`,但Windows驱动路径除外,例如 `C:/Users`。 。 。 .

示例 `'/Users/sindresorhus/dev/clean-stack'` 作为 `basePath`数字 :

`/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15` → `unicorn.js:2:15`

> \[注\] `basePath` 在文件 URL 解码前匹配, 所以 `/Users/John Doe/dev` 不匹配 `file:///Users/John%20Doe/dev`。在匹配之后,剩余的 URL 逃出会保持编码,即使与 `pretty`。 。 。 .

> \[注\] 框架类 `at fn (unicorn.js:2:15)` 因为它们和旧的 内部节点相类似。 之后再次清理 `basePath` 因此,生成此表单可以直接从基础路径中放下文件的帧。 带有目录的路径, 如 `at fn (src/unicorn.js:2:15)`光着相框 `at unicorn.js:2:15` 不受影响.

##### 路径过滤器

类型 : `(path: string) => boolean`

删除回调时的堆栈行 `false`它接收路径时没有收尾括号 `/` 分离器,在 `basePath` 或者说 `pretty` 将适用。 无路径框架, 如 `at async Promise.all (index 0)` 产量 `index 0`。 。 。 .

> \[注\] 函数名称中平衡括号,例如 `at render (partial) (/base/a.js:6:9)`,和路径,例如 `C:/Program Files (x86)/app.js:1:1`,则支持。 函数名称中的未平衡括号,例如 `at a(b (/base/a.js:6:9)`,可以使部分名称包含在路径中.

```js
import cleanStack from 'clean-stack';

const error = new Error('Missing unicorn');

console.log(cleanStack(error.stack));
// Error: Missing unicorn
//     at Object.<anonymous> (/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15)
//     at Object.<anonymous> (/Users/sindresorhus/dev/clean-stack/omit-me.js:1:16)

const pathFilter = path => !/omit-me/.test(path);

console.log(cleanStack(error.stack, {pathFilter}));
// Error: Missing unicorn
//     at Object.<anonymous> (/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15)
```

## 相关

-   [提取存储](https://github.com/sindresorhus/extract-stack) - 提取一个错误的实际堆栈
-   [堆栈曲线](https://github.com/tapjs/stack-utils) - 捕捉和清理堆积痕迹

## 常见问题

### clean-stack 是什么？

清理错误堆栈跟踪

### 如何安装 clean-stack？

在项目目录运行 npm install clean-stack，或使用 pnpm add / yarn add / bun add。

### clean-stack 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### clean-stack 支持 ESM 还是 CommonJS？

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

### clean-stack 需要什么版本的 Node\.js？

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

### clean-stack 可以商用吗？

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

### clean-stack 的下载量有多少？

根据 npm 官方下载统计，clean-stack 在 2026/10/05 – 2026/11/03 这 30 天内被下载 182,050,531 次，日均约 6,068,351 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### clean-stack 还在维护吗？

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

