-
Notifications
You must be signed in to change notification settings - Fork 33
Expand file tree
/
Copy pathbuild.js
More file actions
48 lines (45 loc) · 1.15 KB
/
build.js
File metadata and controls
48 lines (45 loc) · 1.15 KB
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
import { buildSync } from 'esbuild';
import { copyFileSync } from 'fs';
const options = {
platform: 'node',
bundle: true,
target: 'node20',
external: ['electron', 'cpu-features'],
define: {
'process.env.NODE_ENV': `"${process.argv[2] === '--dev' ? 'development' : 'production'}"`,
'process.platform': `"${process.platform}"`
},
loader: {
'.node': 'file'
}
};
buildSync({
entryPoints: ['src/main/main.ts'],
outfile: 'dist/main.cjs',
...options,
minify: process.argv[2] !== '--dev'
});
buildSync({
entryPoints: ['src/preload/preload.js'],
outfile: 'dist/preload.cjs',
...options
});
buildSync({
entryPoints: ['src/preload/global-ipc-renderer.js'],
outfile: 'dist/global-ipc-renderer.cjs',
...options
});
buildSync({
entryPoints: ['src/mcp-server/index.ts'],
outfile: 'dist/mcp-server.js',
...options,
format: 'esm',
banner: {
js: `#!/usr/bin/env node
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
`
}
});
copyFileSync('build/icon.png', 'dist/icon.png');
copyFileSync('build/icon.icns', 'dist/icon.icns');