@saola.ai/rrweb
v2.0.28
Published
record and replay the web
Downloads
303
Keywords
Readme
rrweb
This is a simpler version of the original rrweb README within this rrweb subpackage
rrweb refers to 'record and replay the web', which is a tool for recording and replaying users' interactions on the web.
Guide
📚 Read the rrweb guide here. 📚
Installation
rrweb is kept mainly for backward compatibility. For new integrations, prefer package-specific entrypoints (@rrweb/record and @rrweb/replay) first, or use @rrweb/all as a convenience package.
1) Bundler / npm (Recommended)
For new projects:
npm install @rrweb/record @rrweb/replayimport { record } from '@rrweb/record';
import { Replayer } from '@rrweb/replay';
import '@rrweb/replay/dist/style.css';Convenience single-package option:
npm install @rrweb/allimport { record, Replayer, pack, unpack } from '@rrweb/all';
import '@rrweb/all/dist/style.css';Legacy compatibility package:
npm install rrwebimport { record, Replayer } from 'rrweb';
import 'rrweb/dist/style.css';2) Browser Without Bundler (ESM + import maps)
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@rrweb/replay@latest/dist/style.css"
/>
<script type="importmap">
{
"imports": {
"@rrweb/record": "https://cdn.jsdelivr.net/npm/@rrweb/record@latest/+esm",
"@rrweb/replay": "https://cdn.jsdelivr.net/npm/@rrweb/replay@latest/+esm"
}
}
</script>
<script type="module">
import { record } from '@rrweb/record';
import { Replayer } from '@rrweb/replay';
</script>3) Legacy Direct <script> Include (UMD fallback)
Use this only for compatibility with non-module environments; modern browsers support the importmap method since 2023
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/rrweb@latest/dist/style.css"
/>
<script src="https://cdn.jsdelivr.net/npm/rrweb@latest/umd/rrweb.min.js"></script>Project Structure
rrweb mainly includes two funtions:
- Record: The record function is used to record all the mutations in the DOM
- Replayer: The replay function is to replay the recorded mutations one by one according to the corresponding timestamp.
Roadmap
- storage engine: do deduplication on a large number of rrweb sessions
- compact mutation data in common patterns
- provide plugins via the new plugin API, including:
- XHR plugin
- fetch plugin
- GraphQL plugin
- ...
Internal Design
Contribute Guide
Since we want the record and replay sides to share a strongly typed data structure, rrweb is developed with typescript which provides stronger type support.
- Fork this repository.
- Run
yarn installin the root to install required dependencies for all sub-packages (note:npm installis not recommended). - Run
yarn devin the root to get auto-building for all the sub-packages whenever you modify anything. - Navigate to one of the sub-packages (in the
packagesfolder) where you'd like to make a change. - Patch the code and run
yarn testto run the tests, make sure they pass before you commit anything. - Push the code and create a pull request.
Protip: You can run yarn test in the root folder to run all the tests.
In addition to adding integration tests and unit tests, rrweb also provides a REPL testing tool.
Sponsors
Become a sponsor and get your logo on our README on Github with a link to your site.
Gold Sponsors 🥇
Silver Sponsors 🥈
Bronze Sponsors 🥉
