-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrollup.config.js
76 lines (70 loc) · 2.19 KB
/
rollup.config.js
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import copy from "rollup-plugin-copy";
import typescript from 'rollup-plugin-typescript2';
import generatePackageJson from "rollup-plugin-generate-package-json";
import {terser} from "rollup-plugin-terser";
import visualizer from 'rollup-plugin-visualizer';
const bundleName = "gridl";
const sourceDir = "src";
const outputDir = "dist";
const getOutputFileConf = (format, minified = false) => {
const fileEnding = minified ? "min.js" : "js";
const file = `${outputDir}/_${format}/index.${fileEnding}`;
const plugins = minified ? [terser()] : undefined;
return {file, format, plugins, sourcemap: true, name: bundleName};
};
const getOutputDirConf = (format, minified = false) => ({
format,
plugins: minified ? [terser()] : undefined,
dir: outputDir,
sourcemap: false,
name: bundleName,
});
const buildEsmFiles = () => ({
input: `${sourceDir}/index.ts`,
output: [
getOutputDirConf("esm", true),
],
preserveModules: true,
plugins: [
visualizer({template: "treemap", filename: "stats/esm.html"}),
typescript(),
generatePackageJson({
outputFolder: outputDir,
baseContents: (basePkg) => ({
author: basePkg.author,
bugs: basePkg.bugs,
funding: basePkg.funding,
homepage: basePkg.homepage,
keywords: basePkg.keywords,
license: basePkg.license,
main: "index.js",
module: basePkg.module,
name: basePkg.name,
repository: basePkg.repository,
typings: "index.d.ts",
version: basePkg.version,
}),
}),
copy({
targets: [
{src: "./LICENSE", dest: outputDir},
{src: "./README.md", dest: outputDir},
],
}),
],
});
const buildUmdBundle = () => ({
input: `${sourceDir}/index.ts`,
output: [
getOutputFileConf("umd", true),
getOutputFileConf("umd"),
],
plugins: [
visualizer({template: "treemap", filename: "stats/umd.html"}),
typescript(),
],
});
export default [
buildEsmFiles(),
buildUmdBundle(),
];