Repository navigation
Expand file tree
/
Copy pathrollup.config.js
More file actions
50 lines (46 loc) · 1.42 KB
/
Copy pathrollup.config.js
File metadata and controls
50 lines (46 loc) · 1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import typescript from "@rollup/plugin-typescript";
import terser from "@rollup/plugin-terser";
import dts from "rollup-plugin-dts";
const tsconfig = "./tsconfig.build.json";
const subpaths = ["assert", "summary", "serialization", "measure-lag", "long-tasks", "loop-monitor", "compare-reports"];
const subpathBuilds = subpaths.flatMap((name) => [
{
input: `src/${name}.ts`,
output: { file: `dist/${name}.mjs`, format: "esm", sourcemap: true },
plugins: [typescript({ tsconfig, declaration: false })],
},
{
input: `src/${name}.ts`,
output: { file: `dist/${name}.d.ts`, format: "esm" },
plugins: [dts()],
},
]);
export default [
// ESM — unminified root bundle
{
input: "src/index.ts",
output: { file: "dist/index.mjs", format: "esm", sourcemap: true },
plugins: [typescript({ tsconfig, declaration: false })],
},
// ESM — minified root bundle for CDN usage
{
input: "src/index.ts",
output: { file: "dist/index.min.mjs", format: "esm", sourcemap: true },
plugins: [
typescript({ tsconfig, declaration: false }),
terser({
format: { comments: false },
mangle: { properties: { regex: /^_/ } },
compress: { passes: 2 },
}),
],
},
// Type declarations — root bundle
{
input: "src/index.ts",
output: { file: "dist/index.d.ts", format: "esm" },
plugins: [dts()],
},
// Subpath ESM + type declarations
...subpathBuilds,
];