forked from andreasbm/web-config
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrollup.config.ts
84 lines (79 loc) · 1.58 KB
/
rollup.config.ts
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
import {resolve, join} from "path";
import {
defaultOutputConfig,
defaultPlugins,
defaultProdPlugins,
defaultServePlugins,
isProd,
isServe
} from "./dist/lib/index.esm";
const folders = {
dist: resolve(__dirname, "dist/demo"),
src: resolve(__dirname, "src/demo"),
src_assets: resolve(__dirname, "src/demo/assets"),
dist_assets: resolve(__dirname, "dist/demo/assets")
};
const files = {
main: join(folders.src, "main.ts"),
src_index: join(folders.src, "index.html"),
dist_index: join(folders.dist, "index.html")
};
export default {
input: {
main: files.main
},
output: [
defaultOutputConfig({
dir: folders.dist,
format: "esm"
})
],
plugins: [
// @ts-ignore
...defaultPlugins({
replaceConfig: {
resources: [
(isProd ?
[resolve(__dirname, "src/demo/env.ts"), resolve(__dirname, "src/demo/env.prod.ts")]
: [])
]
},
copyConfig: {
resources: [[folders.src_assets, folders.dist_assets]]
},
cleanConfig: {
targets: [
folders.dist
]
},
htmlTemplateConfig: {
template: files.src_index,
target: files.dist_index,
include: /main(-.*)?\.js$/
},
importStylesConfig: {
globals: ["main.scss"]
}
}),
// Serve
...(isServe ? defaultServePlugins({
dist: folders.dist
})
: []),
// Production
...(isProd ? defaultProdPlugins({
dist: folders.dist,
minifyLitHtmlConfig: {
include: /my-component.ts$/
},
budgetConfig: {
sizes: {
".js": 1024 * 170, // Max file size in bytes (170kb)
".jpg": 1024 * 400
}
}
}) : [])
],
treeshake: isProd,
context: "window"
}