-
Notifications
You must be signed in to change notification settings - Fork 0
/
rollup.config.js
68 lines (64 loc) · 1.5 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
import analyze from "rollup-plugin-analyzer"
import { terser } from "rollup-plugin-terser"
import typescript from "rollup-plugin-typescript2"
import resolve from "@rollup/plugin-node-resolve"
import commonjs from "@rollup/plugin-commonjs"
import json from "@rollup/plugin-json"
import path from "path"
import fs from "fs"
const production = process.env.NODE_ENV === "production"
const esmDebugging = process.env.CPPKIES_ESM_DEBUGGING === "yes"
const plugins = [
resolve({ browser: true }),
typescript({
tsconfig: production ? "./tsconfig.json" : "./tsconfig.dev.json",
exclude: "./dist",
objectHashIgnoreUnknownHack: true,
}),
json(),
commonjs(),
analyze({
summaryOnly: true,
}),
production ? terser() : undefined,
]
function getFilesRecursive(dir) {
const files = []
fs.readdirSync(dir).forEach(file => {
if (file.endsWith("d.ts")) return
const absolute = path.join(dir, file)
if (fs.statSync(absolute).isDirectory())
files.push(...getFilesRecursive(absolute))
else files.push(absolute)
})
return files
}
//import banner from "rollup-plugin-banner"
export default [
...(!esmDebugging
? [
{
input: ["./src/index.ts"],
output: {
name: "Cppkies2Cash",
file: "./dist/index.js",
format: "umd",
sourcemap: true,
},
plugins,
},
]
: []),
...(production || esmDebugging
? [
{
input: getFilesRecursive("./src").map(val => `./${val}`),
output: {
dir: "./dist/esm",
format: "esm",
},
plugins,
},
]
: []),
]