-
Notifications
You must be signed in to change notification settings - Fork 0
/
rollup.config.js
63 lines (60 loc) · 1.85 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
import commonjs from "@rollup/plugin-commonjs";
import resolve from '@rollup/plugin-node-resolve';
import sourcemaps from "rollup-plugin-sourcemaps";
//import ts from 'rollup-plugin-ts'; // Used because the default TS plugin doesn't generate .d.ts files D:
import replace from "@rollup/plugin-replace";
import ts from "@rollup/plugin-typescript";
const extensions = [".js", ".jsx", ".ts", ".tsx"];
/**
* Source maps are really tricky.
*
* It's really hard to drag them all the way through TypeScript, Rollup, and Babel unscathed
* without something going wrong.
*
* Things to check for:
* 1. Do the source maps point to the original TS sources, or the distributed JS sources?
* 2. Do the source maps work in our code but not Preact?
* 3. Do the source maps work in Preact but not our code?
*/
/** @type {import('rollup').RollupOptions} */
export default {
input: "src/index.tsx",
output: {
file: "./dist/react/index.js",
format: "es",
name: "index.react",
sourcemap: true,
globals: {
"react": "React",
"react/jsx-runtime": "React",
"react-dom": "ReactDOM"
}
},
external: [
"react",
"react/jsx-runtime",
"react-dom",
"lodash-es",
"blocking-elements",
"clsx",
"lodash-es",
"tabbable",
"wicg-inert",
"preact-prop-helpers/preact",
"preact-prop-helpers/react"
],
treeshake: "recommended",
plugins: [
replace({
"preact-prop-helpers/preact": "preact-prop-helpers/react",
preventAssignment: false
}),
ts({
tsconfig: "tsconfig.react.json",
module: "NodeNext"
}),
commonjs({ extensions, sourceMap: true }),
resolve({ extensions, dedupe: ['react', "react-dom"], }),
sourcemaps()
],
}