Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Create a new umd folder alongside dist for output of UMD files wi…
…th a plain `.js` instead of `.cjs` extension, as the latter won't be served with the correct mime type by jsdelivr

 - #1687 (just rename `.cjs` to `.js`) was rejected due to the the 'dual package hazard' [1], and produces a warning when run through publint.dev (which was the original motivation for changing to \.cjs)
 - jsdelivr won't be serving `.cjs` with the correct mime type: jsdelivr/jsdelivr#18584

[1] https://nodejs.org/en/learn/modules/publishing-a-package#the-dual-package-hazard
  • Loading branch information
eoghanmurray committed Jun 12, 2025
commit 396875d994da658a0f2024a7c1bef4aed9f71353
6 changes: 3 additions & 3 deletions guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ You are recommended to install rrweb via jsdelivr's CDN service:
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/rrweb@latest/dist/style.css"
/>
<script src="https://cdn.jsdelivr.net/npm/rrweb@latest/dist/rrweb.umd.min.cjs"></script>
<script src="https://cdn.jsdelivr.net/npm/rrweb@latest/umd/rrweb.min.js"></script>
```

Also, you can link to a specific version number that you can update manually:

```html
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/rrweb.umd.min.cjs"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/umd/rrweb.min.js"></script>
```

#### Only include the recorder code
Expand All @@ -30,7 +30,7 @@ rrweb's code includes both the record and the replay parts. Most of the time you
This also can be done by using the `@rrweb/record` package and the CDN service:

```html
<script src="https://cdn.jsdelivr.net/npm/@rrweb/record@latest/dist/record.umd.min.cjs"></script>
<script src="https://cdn.jsdelivr.net/npm/@rrweb/record@latest/umd/record.min.js"></script>
```

#### Other packages
Expand Down
6 changes: 3 additions & 3 deletions guide.zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,21 @@
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/rrweb@latest/dist/style.css"
/>
<script src="https://cdn.jsdelivr.net/npm/rrweb@latest/dist/rrweb.umd.min.cjs"></script>
<script src="https://cdn.jsdelivr.net/npm/rrweb@latest/umd/rrweb.min.js"></script>
```

也可以在 URL 中指定具体的版本号,例如:

```html
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/rrweb.umd.min.cjs"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/umd/rrweb.min.js"></script>
```

#### 仅引入录制部分

rrweb 代码分为录制和回放两部分,大多数时候用户在被录制的应用中只需要引入录制部分代码。同样可以通过使用 @rrweb/record 包和 CDN 服务来实现:

```html
<script src="https://cdn.jsdelivr.net/npm/@rrweb/record@latest/dist/record.umd.min.cjs"></script>
<script src="https://cdn.jsdelivr.net/npm/@rrweb/record@latest/umd/record.min.js"></script>
```

#### 其他包
Expand Down
2 changes: 1 addition & 1 deletion packages/rrweb-player/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ rrweb-player can also be included with `<script>`:
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/rrweb-player@latest/dist/style.css"
/>
<script src="https://cdn.jsdelivr.net/npm/rrweb-player@latest/dist/index.umd.cjs"></script>
<script src="https://cdn.jsdelivr.net/npm/rrweb-player@latest/umd/index.js"></script>
```

Or installed by using NPM:
Expand Down
13 changes: 9 additions & 4 deletions vite.config.default.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/// <reference types="vite/client" />
import dts from 'vite-plugin-dts';
import { copyFileSync } from 'node:fs';
import { copyFileSync, mkdirSync } from 'node:fs';
import { defineConfig, LibraryOptions, LibraryFormats, Plugin } from 'vite';
import { build, Format } from 'esbuild';
import { resolve } from 'path';
import { resolve, dirname } from 'path';
import { umdWrapper } from 'esbuild-plugin-umd-wrapper';
import * as fs from 'node:fs';
import { visualizer } from 'rollup-plugin-visualizer';
Expand Down Expand Up @@ -51,22 +51,27 @@ function minifyAndUMDPlugin({
outDir,
});
} else {
mkdirSync(dirname(outputFilePath).replace('/dist', '/umd'));
const outUmd = `${outputFilePath}.umd.cjs`;
await buildFile({
name,
input: inputFilePath,
output: `${outputFilePath}.umd.cjs`,
output: outUmd,
minify: false,
isCss: false,
outDir,
});
copyFileSync(outUmd, `${outputFilePath.replace('/dist/', '/umd/')}.js`);
const outUmdMin = `${outputFilePath}.umd.min.cjs`;
await buildFile({
name,
input: inputFilePath,
output: `${outputFilePath}.umd.min.cjs`,
output: outUmdMin,
minify: true,
isCss: false,
outDir,
});
copyFileSync(outUmdMin, `${outputFilePath.replace('/dist/', '/umd/')}.min.js`);
}
}
}
Expand Down