-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrollup.config.mjs
65 lines (59 loc) · 1.6 KB
/
rollup.config.mjs
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
import resolve from '@rollup/plugin-node-resolve'
import commonjs from '@rollup/plugin-commonjs'
import esbuild from "rollup-plugin-esbuild"
import dts from "rollup-plugin-dts"
import alias from '@rollup/plugin-alias'
const preactAlias = alias({
entries: [
{ find: 'react', replacement: 'preact/compat' },
{ find: 'react-dom', replacement: 'preact/compat' }
]
})
const external = [
"react/jsx-runtime",
"mustache",
"liquidjs"
]
export default [
...createConfigs('src/entries/base.ts', 'dist/autocomplete.[ext]'),
...createConfigs('src/entries/preact.ts', 'dist/preact/autocomplete.[ext]', preactAlias),
...createConfigs('src/entries/react.ts', 'dist/react/autocomplete.[ext]'),
...createConfigs('src/entries/liquid.ts', 'dist/liquid/autocomplete.[ext]'),
...createConfigs('src/entries/mustache.ts', 'dist/mustache/autocomplete.[ext]'),
]
function createConfigs(input, outputTemplate, ...plugins) {
return [
createBuildConfig(input, outputTemplate, ...plugins),
createDtsConfig(input, outputTemplate)
]
}
function createBuildConfig(input, outputTemplate, ...plugins) {
return {
plugins: [
resolve(),
commonjs(),
esbuild(),
...plugins
],
jsx: "react-jsx",
external,
input,
output: [["mjs", "es"], ["cjs", "cjs"]].map(([ext, format]) => ({
file: outputTemplate.replace("[ext]", ext),
format,
sourcemap: true,
}))
}
}
function createDtsConfig(input, outputTemplate) {
return {
plugins: [
dts()
],
input,
output: {
file: outputTemplate.replace("[ext]", "d.ts"),
format: "es"
}
}
}