-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathesbuild.js
44 lines (42 loc) · 1.3 KB
/
esbuild.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
const esbuild = require('esbuild')
const cssModulesPlugin = require('esbuild-css-modules-plugin')
const plugin = require('node-stdlib-browser/helpers/esbuild/plugin')
const stdLibBrowser = require('node-stdlib-browser')
require('dotenv').config()
esbuild
.build({
entryPoints: [
'./src/background.ts',
'./src/contentScript.ts',
'./src/introduce.ts',
'./src/launch.ts',
'./src/injection.ts',
'./src/app.tsx',
],
bundle: true,
minify: process.env.NODE_ENV === 'production',
sourcemap: process.env.NODE_ENV !== 'production' ? 'inline' : 'linked',
loader: {
'.svg': 'file',
'.woff': 'file',
'.woff2': 'file',
'.png': 'file',
},
target: ['chrome96'],
outdir: './public/build',
publicPath: '/build',
inject: [require.resolve('node-stdlib-browser/helpers/esbuild/shim')],
define: {
'process.env.NODE_ENV': `"${process.env.NODE_ENV}"`,
global: 'window',
},
plugins: [plugin(stdLibBrowser), cssModulesPlugin()],
watch: process.env.NODE_ENV === 'development' && {
onRebuild() {
console.log('Rebuild successful.')
},
},
logLevel: process.env.NODE_ENV === 'development' ? 'verbose' : 'error',
})
.then(() => console.log('Build successful.'))
.catch(() => process.exit(1))