|
1 |
| -/* eslint-disable import/no-dynamic-require */ |
| 1 | +import child from 'child_process'; |
2 | 2 | import path from 'path';
|
3 | 3 | import zlib from 'zlib';
|
4 | 4 | import { encode } from 'base16384';
|
@@ -27,8 +27,9 @@ const nopMap = '//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIj
|
27 | 27 | outdir: path.join(process.cwd(), 'dist'),
|
28 | 28 | splitting: false,
|
29 | 29 | write: false,
|
| 30 | + target: 'node16', |
30 | 31 | tsconfig: path.resolve(process.cwd(), 'tsconfig.json'),
|
31 |
| - minify: true, |
| 32 | + minify: !process.argv.includes('--debug'), |
32 | 33 | entryPoints: [path.resolve(process.cwd(), 'packages/server/index.ts')],
|
33 | 34 | charset: 'utf8',
|
34 | 35 | sourcemap: process.argv.includes('--debug') ? 'inline' : false,
|
@@ -60,4 +61,15 @@ const nopMap = '//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIj
|
60 | 61 | logger.info(`Resource Size: ${size(res.outputFiles[0].text)}`);
|
61 | 62 | fs.writeFileSync(path.resolve(process.cwd(), 'dist/xcpc-tools.js'), res.outputFiles[0].text);
|
62 | 63 | logger.info('Saved to dist/xcpc-tools.js');
|
| 64 | + if (!process.env.SEA) return; |
| 65 | + fs.writeFileSync(path.resolve(process.cwd(), 'dist/sea-config.json'), JSON.stringify({ |
| 66 | + main: 'xcpc-tools.js', |
| 67 | + output: 'sea-prep.blob', |
| 68 | + })); |
| 69 | + child.execSync('node --experimental-sea-config sea-config.json', { cwd: path.resolve(process.cwd(), 'dist') }); |
| 70 | + fs.copyFileSync(path.resolve(process.cwd(), 'nanode-v22.x-icu_none-v8_opts-lto-x64'), path.resolve(process.cwd(), 'dist/nanode')); |
| 71 | + child.execSync( |
| 72 | + 'npx postject nanode NODE_SEA_BLOB sea-prep.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2', |
| 73 | + { cwd: path.resolve(process.cwd(), 'dist') }, |
| 74 | + ); |
63 | 75 | })();
|
0 commit comments