# @devexpress/callsite-record 中文文档

规范地址：https://npmcn.com/package/%40devexpress/callsite-record/

版本：4\.1\.7
npm 元数据更新时间：2026-11-11T16:17:45.261Z
中文译文更新时间：2026-11-12T03:00:27.496Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40devexpress/callsite-record
原文对照：https://npmcn.com/package/%40devexpress/callsite-record/?lang=original
项目主页：https://github.com/inikulin/source-frame#readme
源码仓库：https://github.com/inikulin/source-frame

弃用说明：The @devexpress/callsite-record package is deprecated and will no longer receive updates\.

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

- 包体积（解压后）：24.4 kB，9 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：7 个
- 首次发布：2023-08-10T08:08:48.208Z
- 最新版本发布：2023-08-17T14:56:46.289Z
- 近 30 天下载量：505406（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：2（近 12 个月 0 个）

## 中文简介

为错误和函数调用网站创建花式日志条目 .

## 安装

```sh
npm install @devexpress/callsite-record
```

也可以使用：`pnpm add @devexpress/callsite-record`、`yarn add @devexpress/callsite-record`、`bun add @devexpress/callsite-record`

## README

# 电话记录

[![Build Status](https://api.travis-ci.org/inikulin/callsite-record.svg)](https://travis-ci.org/inikulin/callsite-record)

_为错误和函数调用网站创建花式日志条目 ._

**错误 :**

```js
'use strict';

const createCallsiteRecord = require('callsite-record');

function myFunc() {
    throw new Error('Yo!');
}

try {
    myFunc();
}
catch(err) {
    console.log(createCallsiteRecord({ forError: err }).renderSync());
}

```

⬇

![example](https://raw.githubusercontent.com/inikulin/callsite-record/master/media/example1.png)

**对于堆栈中的函数调用 :**

```js
'use strict';

const createCallsiteRecord = require('callsite-record');

function func2 () {
    (function func1 () {
        console.log(createCallsiteRecord({ byFunctionName: 'func2' }).renderSync());
    })();
}

func2();
```

⬇

![example](https://raw.githubusercontent.com/inikulin/callsite-record/master/media/example2.png)

**其他的好东西:**

-   使用 [渲染器](https://npmcn.com/package/%40devexpress/callsite-record/#readme-renderoptionsrenderer) 用于不同的输出格式,例如以 HTML 输出.
-   使用 [堆栈过滤器](https://npmcn.com/package/%40devexpress/callsite-record/#readme-renderoptionsstackfilter) 用于生产干净而美丽的堆栈,例如去除节点液内部调用.

## 安装

```
npm install callsite-record
```

## API 密码

### 创建Callsite Record ({ for Error, isCallsiteFrame, processFrameFn }) – Callsite Record

您可以为任何堆栈框架生成一个呼叫网站, 而不仅仅是最上层的。 使用 `isCallsiteFrame` 要选择的函数 一个框架。 从顶部开始的每个框架都使用此函数 。 返回时 `true` 用于创建所需的框架 电话站.

_示例_

```js
const createCallsiteRecord = require('callsite-record');

try {
    throw new Error("We're doomed");
}
catch(err) {
    const record = createCallsiteRecord({ forError: err });
}
```

### 创建呼叫站点记录( { 按功能 名称, 类型Name, processFrameFn } ) – 呼叫记录

创建 `CallsiteRecord` 用于调用堆栈中的函数 `byFunctionName`。您可以选择指定 `typeName` 如果函数是一种方法。 如果函数是构造器集 `byFunctionName` 改为 `constructor`。 。 。 .

_示例_

```js
const createCallsiteRecord = require('callsite-record');

(function func1() {
    (function func2() {
        (function func3() {
            const record = createCallsiteRecord({ byFunctionName: 'func2' });
        })();
    })();
})();
```

您可以指定 `processFrameFn` 函数,它将按 calltack处理每个框架。 需要的时候有用 启用帧处理像 `source-maps-support`。 。 。 .

_示例_

```js
const createCallsiteRecord = require('callsite-record');
const wrapCallSite         = require('source-map-support').wrapCallSite;

try {
    throw new Error("We're doomed");
}
catch(err) {
    const record = createCallsiteRecord({ forError: err, processFrameFn: wrapCallSite });
}

(function func1() {
    (function func2() {
        (function func3() {
            const record = createCallsiteRecord({ byFunctionName: 'func2', processFrameFn: wrapCallSite });
        })();
    })();
})();
```

### 呼叫记录

#### Calliste Record.refers (\[stand options\]) – 承诺<String>

Renders将网站记录调用到字符串.

_示例_

```js
record.render().then(str => console.log(str));
```

#### Calliste Record.renderSync(\[下发可选\]) 字符串

同步版本 `CallsiteRecord.render`。 。 。 .

##### 参数化

指定代码框中调用站点上下行数. **默认 :** `5`。 。 。 .

_示例_

```js
console.log(record.renderSync({ frameSize: 0 }));
// > 12 |    func1();
// ...

console.log(record.renderSync({ frameSize: 1 }));
//   11 |(function func2() {
// > 12 |    func1();
//   13 |})();
// ...
```

##### 转换选项.codeFrame

指定是否打开代码框。 如果禁用只显示堆栈 . **默认 :** `true`。 。 。 .

##### 转换选项.stack

指定除代码框架外是否还要提供堆栈跟踪. **默认 :** `true`。 。 。 .

##### 转换选项.stackFilter

用于过滤堆栈框架的函数 。 函数接受两个参数 :

-   `stackFrame` - 堆入门.
-   `idx` - 边框索引.
-   `isV8StackFrame` - 狦 `true` 接下来 `stackFrame` 是一个 V8 [调用](https://github.com/v8/v8/wiki/Stack-Trace-API#customizing-stack-traces) 对象. 否则,它是一个 [堆叠外观](https://github.com/stacktracejs/stackframe) 对象.

**默认 :** `null`。 。 。 .

_示例_

```js
const sep = require('path').sep;

// Remove node core lib calls from the stack trace
record.renderSync({ stackFilter: frame => frame.getFileName().indexOf(sep) > -1 });
```

##### 变相选项. lander

指定渲染的输出格式. **默认 :** `renderers.default`你可以通过自己的 渲染器对象 ([实例执行](https://github.com/inikulin/callsite-record/tree/master/lib/renderers))或使用 一个内置渲染器:

###### 渲染器。 默认

提供上面显示的ANSI色输出.

_用法 :_

```js
const defaultRenderer = require('callsite-record').renderers.default;

record.renderSync({ renderer: defaultRenderer });
```

###### 渲染器 无颜色

与 `default` 造型器,但没有颜色.

_用法 :_

```js
const noColorRenderer = require('callsite-record').renderers.noColor;

record.renderSync({ renderer: noColorRenderer });
```

###### 渲染器.html

输出 HTML 后可以与 CSS 进行装饰并嵌入网页. [示例输出](https://github.com/inikulin/callsite-record/blob/master/test/data/expected-html/0.html)。 。 。 .

_用法 :_

```js
const htmlRenderer = require('callsite-record').renderers.html;

record.renderSync({ renderer: html });
```

## 相关

-   [是-es2016-关键词](https://github.com/inikulin/is-es2016-keyword) -确定字符串是否为ES2016关键词.
-   [高亮点](https://github.com/inikulin/highlight-es) - 突出控制台或任何其他介质的ECMAScript语法.

## 作者

[伊万·尼库林](https://github.com/inikulin) (单位:千美元)[ifaaan@gmail.com (英语)](mailto:ifaaan@gmail.com)(中文(简体) )

## 常见问题

### @devexpress/callsite-record 是什么？

为错误和函数调用网站创建花式日志条目 \.注意：该包已被作者标记为弃用——The @devexpress/callsite-record package is deprecated and will no longer receive updates\.

### 如何安装 @devexpress/callsite-record？

在项目目录运行 npm install @devexpress/callsite-record，或使用 pnpm add / yarn add / bun add。

### @devexpress/callsite-record 支持 TypeScript 吗？

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

### @devexpress/callsite-record 支持 ESM 还是 CommonJS？

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

### @devexpress/callsite-record 可以商用吗？

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

### @devexpress/callsite-record 的下载量有多少？

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

### @devexpress/callsite-record 还在维护吗？

最新版本 4\.1\.7 发布于 2023/08/17（3 年前）；至今共发布 2 个版本，其中过去 12 个月发布了 0 个；首次发布于 2023/08/10。作者已将其标记为弃用，新项目建议寻找替代方案。

