# @fluidattacks/tracks 中文文档

规范地址：https://npmcn.com/package/%40fluidattacks/tracks/

版本：0\.8\.0
npm 元数据更新时间：2026-09-16T20:05:24.054Z
中文译文更新时间：2026-11-15T02:09:50.925Z
软件包许可：MPL-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40fluidattacks/tracks
原文对照：https://npmcn.com/package/%40fluidattacks/tracks/?lang=original
项目主页：https://docs.fluidattacks.com/internal/engineering/tracks

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

- 包体积（解压后）：13 kB，12 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=21
- 运行依赖：2 个
- 首次发布：2025-04-26T01:31:52.279Z
- 最新版本发布：2026-09-16T20:05:23.876Z
- 近 30 天下载量：10979（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：10（近 12 个月 5 个）

## 中文简介

用于分析用途的文本库

## 安装

```sh
npm install @fluidattacks/tracks
```

也可以使用：`pnpm add @fluidattacks/tracks`、`yarn add @fluidattacks/tracks`、`bun add @fluidattacks/tracks`

## README

# @ fluid攻击/跟踪

[![NPM version](https://img.shields.io/npm/v/@fluidattacks/tracks.svg)](https://npmjs.org/package/@fluidattacks/tracks)

[![Fluid Attacks logo](https://res.cloudinary.com/fluid-attacks/image/upload/v1728418266/airs/logo/logo_full.png)](https://fluidattacks.com/)

这个库提供了从任何TypeScript或JavaScript应用程序中报告使用分析的方便方法.

所有在背景运行的操作, 错误被记录 但不要向呼叫者传播, 确保您的应用程序的流量不中断.

## 使用量

```typescript
import { Tracks } from "@fluidattacks/tracks";

const client = new Tracks();
client.event.create({
  action: "CREATE",
  author: "author",
  date: new Date(),
  mechanism: "API",
  metadata: { foo: "bar" },
  object: "object",
  objectId: "objectId",
});
```

## 匿名访客

对于未经校正的表面,将身份设定在客户端上一次,所以不打电话 网站可以省略. 饼干发行了 `HttpOnly`{\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}我读它 回到服务器上.

```typescript
import {
  Tracks,
  createAnonymousId,
  nextSessionId,
  readAnonymousCookie,
  serializeAnonymousCookie,
} from "@fluidattacks/tracks";

const COOKIE_NAME = "my_anon_id";

const anonymousId =
  readAnonymousCookie(cookieHeader, { name: COOKIE_NAME }) ??
  createAnonymousId();
const cookie = serializeAnonymousCookie(anonymousId, {
  domain: ".example.com",
  name: COOKIE_NAME,
});

const client = new Tracks({
  author: anonymousId,
  authorAnonymous: true,
  sessionId: nextSessionId(previousSessionId, lastSeenAt, new Date()),
});
```

`cookieHeader` 即将到来 `Cookie` 页眉; `previousSessionId` 财务报告和审定财务报表 `lastSeenAt` 不论召唤者坚持什么。 会话编号在之后滚动 30分钟无活性.

按请求构建客户端 。 持有身份的客户属于 单人访问,所以模块一级 将第一个访问者身份交给 其他人 过程服务.

`author` 财务报告和审定财务报表 `authorAnonymous` 以一对一方式旅行: 提供自身服务的事件 `author` 从来没有匿名的客户身份。 API还是 默认 `author_anonymous` 改为 `true` 当球场和它的公众缺席时 路由只接受匿名事件, 因此客户端无法记录已识别的 作者独自一人.

`mechanism` 每次事件总是需要的: SDK从不猜测,因为 错误的机制与分析中的真实机制是无法区分的.

## 常见问题

### @fluidattacks/tracks 是什么？

用于分析用途的文本库

### 如何安装 @fluidattacks/tracks？

在项目目录运行 npm install @fluidattacks/tracks，或使用 pnpm add / yarn add / bun add。

### @fluidattacks/tracks 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/fluidattacks\_\_tracks 是否存在。

### @fluidattacks/tracks 支持 ESM 还是 CommonJS？

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

### @fluidattacks/tracks 需要什么版本的 Node\.js？

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

### @fluidattacks/tracks 可以商用吗？

@fluidattacks/tracks 使用 MPL-2\.0 许可。弱 Copyleft：可以商用，也可以和闭源代码一起使用；但如果分发时修改了 MPL 授权的文件，这些文件的修改需以 MPL 开源。以上为概括，不构成法律意见，请以许可原文为准。

### @fluidattacks/tracks 的下载量有多少？

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

### @fluidattacks/tracks 还在维护吗？

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

