diff options
Diffstat (limited to 'esbuild.mjs')
-rwxr-xr-x | esbuild.mjs | 43 |
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 |
2 | import { build, serve } from 'esbuild'; | 2 | import * as esbuild from 'esbuild'; |
3 | import { sassPlugin } from 'esbuild-sass-plugin'; | 3 | import { sassPlugin } from 'esbuild-sass-plugin'; |
4 | import { copy } from 'esbuild-plugin-copy'; | 4 | import { copy } from 'esbuild-plugin-copy'; |
5 | import glob from 'tiny-glob'; | 5 | import glob from 'tiny-glob'; |
@@ -60,7 +60,7 @@ const staticAssets = () => [ | |||
60 | }), | 60 | }), |
61 | ]; | 61 | ]; |
62 | 62 | ||
63 | const copyManualAssets = async () => { | 63 | const 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 | ||
78 | const runEsbuild = async () => { | 78 | const 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, |