# @amplitude/rrweb-snapshot 中文文档

规范地址：https://npmcn.com/package/%40amplitude/rrweb-snapshot/

版本：2\.1\.6
npm 元数据更新时间：2026-11-05T03:02:56.399Z
中文译文更新时间：2026-11-06T01:22:06.100Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40amplitude/rrweb-snapshot
原文对照：https://npmcn.com/package/%40amplitude/rrweb-snapshot/?lang=original
项目主页：https://github.com/amplitude/rrweb/tree/master/packages/rrweb-snapshot#readme
源码仓库：https://github.com/amplitude/rrweb

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

- 包体积（解压后）：2 MB，13 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2023-10-24T15:05:39.935Z
- 最新版本发布：2026-11-05T03:02:56.067Z
- 近 30 天下载量：5159625（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：33（近 12 个月 11 个）

## 中文简介

rrweb的组件来拍摄 DOM 的快照, 也就是 DOM 序列器

## 安装

```sh
npm install @amplitude/rrweb-snapshot
```

也可以使用：`pnpm add @amplitude/rrweb-snapshot`、`yarn add @amplitude/rrweb-snapshot`、`bun add @amplitude/rrweb-snapshot`

## README

# rrweb- snapshot 图像

[![Build Status](https://travis-ci.org/rrweb-io/rrweb.svg?branch=master)](https://travis-ci.org/rrweb-io/rrweb) [![Join the chat at slack](https://img.shields.io/badge/slack-@rrweb-teal.svg?logo=slack)](https://join.slack.com/t/rrweb/shared_invite/zt-siwoc6hx-uWay3s2wyG8t5GpZVb8rWg)

将 DOM 拍摄成一个状态和可序列的数据结构 . 另外,提供通过快照重建DOM的能力.

## API 密码

此模块导出如下方法 :

### 简介

`snapshot` 将穿越 DOM 并返回能够代表当前 DOM 的状态和可序列的数据结构 **视图**。 。 。 .

在快照期间将做一些事情:

1.  将一些 DOM 状态插入到 HTML 属性中,例如 HTML InputElement 的值.
2.  将脚本标签转换为 `noscript` 避免脚本被执行的标记.
3.  尝试内置样式表,以确保可以使用本地样式表 .
4.  使href,src,CSS中的相对路径成为绝对路径.
5.  给每个节点一个ID,并在快照完成后返回ID节点地图.

#### 重建

`rebuild` 将会根据拍摄的快照构建DOM.

重建期间将做一些事情:

1.  如果节点是元素,则添加数据驱动属性.
2.  创建一些额外的DOM节点,如文本节点,以设置内置 CSS 和一些状态.
3.  如果节点拥有一些额外的孩子DOM,则添加数据外孩子索引属性.

#### 序列化 NodeWithId 软件

`serializeNodeWithId` 可将节点序列化为带有 id 的快照格式.

#### 构建节点WithSN

`buildNodeWithSN` 从序列化节点建立DOM,并将序列化信息存储于 `mirror.getMeta(node)`。 。 。 .

## 常见问题

### @amplitude/rrweb-snapshot 是什么？

rrweb的组件来拍摄 DOM 的快照, 也就是 DOM 序列器

### 如何安装 @amplitude/rrweb-snapshot？

在项目目录运行 npm install @amplitude/rrweb-snapshot，或使用 pnpm add / yarn add / bun add。

### @amplitude/rrweb-snapshot 支持 TypeScript 吗？

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

### @amplitude/rrweb-snapshot 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @amplitude/rrweb-snapshot 可以商用吗？

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

### @amplitude/rrweb-snapshot 的下载量有多少？

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

### @amplitude/rrweb-snapshot 还在维护吗？

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

