callsites

中文文档
4.2.0发布于 2024/06/29MITTypeScriptES Module零依赖近 30 天下载 6亿

从V8堆栈跟踪API获取调用

中文使用文档
文档目录3 节
  1. 安装
  2. 用法
  3. API

callsites

接到电话 V8堆栈跟踪API

安装

npm install callsites

用法

import callsites from 'callsites';

function unicorn() {
    console.log(callsites()[0].getFileName());
    //=> '/Users/sindresorhus/dev/callsites/test.js'
}

unicorn();

API

返回具有以下方法的callsite对象数组:

  • getThis:返回的值 this。
  • getTypeName的类型 this 作为字符串。的构造函数字段中存储的函数名称 this,否则为对象的 [[Class]] 内部属性。
  • getFunction:返回当前函数。
  • getFunctionName:返回当前函数的名称,通常是它的 name 财产。如果name属性不可用,将尝试从函数的上下文中推断出名称。
  • getMethodName的属性名 this 或者是拥有当前功能的原型机之一。
  • getFileName:如果此函数在脚本中定义,则返回该脚本的名称。
  • getLineNumber:如果此函数在脚本中定义,则返回当前行号。
  • getColumnNumber:如果此函数在脚本中定义,则返回当前列号
  • getEvalOrigin:如果这个函数是通过调用创建的 eval 返回一个表示位置的字符串 eval 被称为。
  • isToplevel:返回 true 如果这是一个顶级调用,也就是说,如果它是一个全局对象。
  • isEval:返回 true 如果此调用发生在调用定义的代码中 eval。
  • isNative:返回 true 如果这个调用是在原生V8代码中。
  • isConstructor:返回 true 如果这是一个构造函数调用。
  • isAsync():返回 true 如果这个调用是异步的(即 await, Promise.all(),或 Promise.any()).
  • isPromiseAll():返回 true 如果这是一个异步调用 Promise.all()。
  • getPromiseIndex():返回后面的promise元素的索引 Promise.all() 或 Promise.any() 对于异步堆栈跟踪,或 null 如果 CallSite 不是异步的 Promise.all() 或 Promise.any() 呼叫。

版本与发布记录

callsites 共发布 10 个版本,首次发布于 2014/04/19;过去 12 个月发布了 0 个版本。

版本发布日期距今
4.2.0latest2024/06/292 年前
4.1.02023/08/123 年前
4.0.02021/08/095 年前
3.1.02019/04/067 年前
3.0.02018/11/207 年前
2.0.02016/08/2810 年前

关于 callsites 的常见问题

callsites 是什么?

从V8堆栈跟踪API获取调用

如何安装 callsites?

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

callsites 支持 TypeScript 吗?

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

callsites 支持 ESM 还是 CommonJS?

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

callsites 需要什么版本的 Node.js?

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

callsites 可以商用吗?

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

callsites 的下载量有多少?

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

callsites 还在维护吗?

最新版本 4.2.0 发布于 2024/06/29(2 年前);至今共发布 10 个版本,其中过去 12 个月发布了 0 个;首次发布于 2014/04/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。