-
Notifications
You must be signed in to change notification settings - Fork 0
/
esbuild.prod.config.js
56 lines (50 loc) · 1.11 KB
/
esbuild.prod.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
var esbuild = require("esbuild");
var inlineImage = require("esbuild-plugin-inline-image");
var dotenv = require("dotenv");
var chalk = require("chalk");
dotenv.config();
var variables = {};
Object.keys(process.env)
.filter((k) => k.startsWith("REACT_APP_"))
.forEach((k) => (variables[k] = process.env[k]));
var define = {
process: JSON.stringify({
env: variables,
}),
};
esbuild
.build({
entryPoints: ["src/index.tsx"],
bundle: true,
minify: true,
format: "cjs",
sourcemap: false,
outfile: "public/dist/bundle.js",
plugins: [inlineImage()],
publicPath: "/dist",
loader: {
".png": "file",
".svg": "file",
".jpg": "file",
},
define,
jsx: "automatic",
})
.then(() => {
var now = new Date();
console.log(
"%s: %s %s",
chalk.gray(now.toTimeString()),
chalk.greenBright("SUCCESS"),
"Build completed successfully"
);
})
.catch((error) => {
var now = new Date();
console.log(
"%s: %s %s",
chalk.gray(now.toTimeString()),
chalk.redBright("FAILURE"),
error.message
);
});