aboutsummaryrefslogtreecommitdiffstats
path: root/esbuild.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'esbuild.mjs')
-rwxr-xr-xesbuild.mjs43
1 files changed, 18 insertions, 25 deletions
diff --git a/esbuild.mjs b/esbuild.mjs
index 0df31be47..ae940b586 100755
--- a/esbuild.mjs
+++ b/esbuild.mjs
@@ -1,5 +1,5 @@
1#!/usr/bin/env node 1#!/usr/bin/env node
2import { build, serve } from 'esbuild'; 2import * as esbuild from 'esbuild';
3import { sassPlugin } from 'esbuild-sass-plugin'; 3import { sassPlugin } from 'esbuild-sass-plugin';
4import { copy } from 'esbuild-plugin-copy'; 4import { copy } from 'esbuild-plugin-copy';
5import glob from 'tiny-glob'; 5import glob from 'tiny-glob';
@@ -60,7 +60,7 @@ const staticAssets = () => [
60 }), 60 }),
61]; 61];
62 62
63const copyManualAssets = async () => { 63const copyManualAssets = () => {
64 if (!fs.existsSync(outDir)) { 64 if (!fs.existsSync(outDir)) {
65 fs.mkdirSync(outDir); 65 fs.mkdirSync(outDir);
66 } 66 }
@@ -72,27 +72,21 @@ const copyManualAssets = async () => {
72 gitHashShort: buildInfo.gitHashShort, 72 gitHashShort: buildInfo.gitHashShort,
73 gitBranch: buildInfo.gitBranch, 73 gitBranch: buildInfo.gitBranch,
74 }; 74 };
75 await fsPkg.outputJson(`${outDir}/buildInfo.json`, buildInfoData); 75 fsPkg.outputJsonSync(`${outDir}/buildInfo.json`, buildInfoData);
76}; 76};
77 77
78const runEsbuild = async () => { 78const runEsbuild = async () => {
79 const startTime = performance.now(); 79 const startTime = performance.now();
80 80
81 let watch = false;
82 let isDev = false;
83
84 const myArgs = process.argv.slice(2); 81 const myArgs = process.argv.slice(2);
85 if (myArgs.includes('--watch')) { 82 const isDev = myArgs.includes('--watch');
86 watch = true;
87 isDev = true;
88 }
89 log(chalk.blue(`Starting with args`), myArgs); 83 log(chalk.blue(`Starting with args`), myArgs);
90 84
91 if (fs.existsSync(outDir)) { 85 if (fs.existsSync(outDir)) {
92 fs.rmSync(outDir, { force: true, recursive: true }); 86 fs.rmSync(outDir, { force: true, recursive: true });
93 log(chalk.blue(`Cleaning`), outDir); 87 log(chalk.blue(`Cleaning`), outDir);
94 } 88 }
95 await copyManualAssets(); 89 copyManualAssets();
96 90
97 // Source files 91 // Source files
98 const entryPoints = await glob('./src/**/*.{ts,tsx,js,jsx}'); 92 const entryPoints = await glob('./src/**/*.{ts,tsx,js,jsx}');
@@ -105,7 +99,7 @@ const runEsbuild = async () => {
105 ); 99 );
106 100
107 // Run build 101 // Run build
108 await build({ 102 await esbuild.build({
109 entryPoints, 103 entryPoints,
110 format: 'cjs', 104 format: 'cjs',
111 minify: false, 105 minify: false,
@@ -113,23 +107,22 @@ const runEsbuild = async () => {
113 minifyIdentifiers: true, 107 minifyIdentifiers: true,
114 keepNames: true, 108 keepNames: true,
115 outdir: outDir, 109 outdir: outDir,
116 watch: isDev && 110 watch: isDev && {
117 watch && { 111 onRebuild(error, result) {
118 onRebuild(error, result) { 112 if (error) {
119 if (error) { 113 log(chalk.red(`watch build failed: ${error}`));
120 log(chalk.red(`watch build failed: ${error}`)); 114 } else {
121 } else { 115 log(chalk.blue(`watch build success:`), result);
122 log(chalk.blue(`watch build success:`), result); 116 livereload.reload();
123 livereload.reload(); 117 }
124 }
125 },
126 }, 118 },
127 incremental: isDev && watch, 119 },
120 incremental: isDev,
128 plugins: [sassPlugin(), ...staticAssets()], 121 plugins: [sassPlugin(), ...staticAssets()],
129 }); 122 });
130 123
131 if (watch) { 124 if (isDev) {
132 const serveResult = await serve( 125 const serveResult = await esbuild.serve(
133 { 126 {
134 servedir: outDir, 127 servedir: outDir,
135 port: 8080, 128 port: 8080,