@devexpress/callsite-record

中文文档
4.1.7发布于 2023/08/17MITTypeScriptCommonJS近 30 天下载 50.5万

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

此软件包已被标记为弃用

The @devexpress/callsite-record package is deprecated and will no longer receive updates.

中文使用文档
文档目录7 节
  1. 安装
  2. API 密码
  3. 创建Callsite Record ({ for Error, isCallsiteFrame, processFra…
  4. 创建呼叫站点记录( { 按功能 名称, 类型Name, processFrameFn } ) – 呼叫记录
  5. 呼叫记录
  6. 相关
  7. 作者

电话记录

Build Status

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

错误 :

'use strict';

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

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

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

⬇

example

对于堆栈中的函数调用 :

'use strict';

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

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

func2();

⬇

example

其他的好东西:

  • 使用 渲染器 用于不同的输出格式,例如以 HTML 输出.
  • 使用 堆栈过滤器 用于生产干净而美丽的堆栈,例如去除节点液内部调用.

安装

npm install callsite-record

API 密码

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

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

示例

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。 。 。 .

示例

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

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

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

示例

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将网站记录调用到字符串.

示例

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

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

同步版本 CallsiteRecord.render。 。 。 .

参数化

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

示例

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 调用 对象. 否则,它是一个 堆叠外观 对象.

默认 : null。 。 。 .

示例

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你可以通过自己的 渲染器对象 (实例执行)或使用 一个内置渲染器:

渲染器。 默认

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

用法 :

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

record.renderSync({ renderer: defaultRenderer });
渲染器 无颜色

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

用法 :

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

record.renderSync({ renderer: noColorRenderer });
渲染器.html

输出 HTML 后可以与 CSS 进行装饰并嵌入网页. 示例输出。 。 。 .

用法 :

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

record.renderSync({ renderer: html });

作者

伊万·尼库林 (单位:千美元)[email protected] (英语)(中文(简体) )

版本与发布记录

@devexpress/callsite-record 共发布 2 个版本,首次发布于 2023/08/10;过去 12 个月发布了 0 个版本。

版本发布日期距今
4.1.7latest2023/08/173 年前
4.1.62023/08/103 年前

关于 @devexpress/callsite-record 的常见问题

@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。作者已将其标记为弃用,新项目建议寻找替代方案。