-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
esbuild.config.js
62 lines (56 loc) · 1.27 KB
/
esbuild.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
import { execSync } from "child_process";
import { build } from "esbuild";
import { readFile } from "fs/promises";
execSync("rm -rf ./dist && mkdir dist");
const cleaner = {
name: "cleaner",
setup(build) {
build.onLoad({ filter: /store\/index.ts*/ }, async (args) => {
const source = await readFile(args.path, "utf8");
return {
contents: source.replaceAll(`(await import("@dreamworld/addon-redux")).enhancer`, "null"),
loader: "ts"
};
});
}
};
/** @type {import('esbuild').BuildOptions} */
const options = {
entryPoints: ["./src/index.tsx"],
bundle: true,
platform: "browser",
format: "esm",
minify: true,
sourcemap: true,
keepNames: true,
loader: {
".png": "file"
},
plugins: [cleaner],
legalComments: "none",
external: ["react", "react-dom", "@dreamworld/addon-redux"]
};
build({
...options,
outfile: "./dist/index.mjs"
});
build({
...options,
format: "cjs",
outfile: "./dist/index.cjs"
});
build({
...options,
outfile: "./dist/index.slim.js",
external: [
...options.external,
"@radix-ui/react-label",
"@radix-ui/react-popover",
"@radix-ui/react-select",
"@radix-ui/react-tooltip",
"class-variance-authority",
"lodash",
"lucide-react",
"tailwind-merge"
]
});