forked from castlabs/prestoplay-react-components
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrollup.config.mjs
More file actions
96 lines (90 loc) · 2.2 KB
/
rollup.config.mjs
File metadata and controls
96 lines (90 loc) · 2.2 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
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import resolve from '@rollup/plugin-node-resolve';
import typescript from '@rollup/plugin-typescript';
import external from 'rollup-plugin-peer-deps-external';
import postcss from 'rollup-plugin-postcss';
import glob from 'glob'
import dts from 'rollup-plugin-dts';
import url from "postcss-url";
import copy from 'rollup-plugin-copy'
import replace from "@rollup/plugin-replace";
import commonjs from "@rollup/plugin-commonjs";
import serve from "rollup-plugin-serve";
import livereload from "rollup-plugin-livereload";
let allInputFiles = glob.sync("src/**/*.ts*");
const entries = allInputFiles.reduce((p, f) => {
let entryName = f.replace("src/", "").replace(/\.ts(x)?/, "")
p[entryName] = f
return p
}, {})
function libsTypescript() {
return typescript({
tsconfig: './tsconfig.json',
compilerOptions: {
outDir: "./dist"
},
include: [
"./src/**/*.tsx",
"./src/**/*.ts"
]
});
}
export default [
// Build the individual module
{
input: entries,
output: [{dir: "dist", format: 'esm'}],
plugins: [
external(),
resolve(),
libsTypescript(),
postcss()
]
},
// build the packaged single file module
{
input: ['src/index.ts'],
output: [{file: "dist/prestoplay-react.js", format: 'esm'}],
plugins: [
external(),
resolve(),
libsTypescript(),
postcss()
]
},
// build the types for the single file module
{
input: 'dist/index.d.ts',
output: [{file: 'dist/prestoplay-react.d.ts', format: "esm"}],
external: [/\.css$/],
plugins: [dts()],
},
// build the themes
{
input: 'src/themes/pp-ui-base-theme.css',
output: [{file: 'dist/themes/pp-ui-base-theme.css', format: 'es'}],
plugins: [
postcss({
modules: false,
extract: true
}),
copy({
targets: [
{src: 'src/themes/resources/**', dest: 'dist/themes/resources'},
]
})
],
},
{
input: 'src/themes/pp-ui-base-theme.css',
output: [{file: 'dist/themes/pp-ui-base-theme-embedded.css', format: 'es'}],
plugins: [postcss({
plugins: [
url({
url: "inline"
})
],
modules: false,
extract: true
})],
}
]