assistant/scripts/build-desktop.mjs

35 lines
1.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 桌面端构建:esbuild 打主进程 / preload(CJS),Vite 打渲染层到 dist/renderer
import { build as esbuild, context } from 'esbuild';
import { build as viteBuild } from 'vite';
import { copyFile, cp, mkdir, rm } from 'node:fs/promises';
const watch = process.argv.includes('--watch');
await rm('dist', { recursive: true, force: true });
await mkdir('dist', { recursive: true });
// 打包后首次运行要把 .env 模板复制到 userData;electron-builder 的 extraResources 会漏掉点开头的文件,所以进 asar
await copyFile('.env.example', 'dist/env.example');
await cp('resources/brand', 'dist/brand', { recursive: true });
const mainOptions = {
entryPoints: { main: 'electron/main.ts', preload: 'electron/preload.ts' },
bundle: true,
platform: 'node',
target: 'node22',
format: 'cjs',
outdir: 'dist',
outExtension: { '.js': '.cjs' },
external: ['electron'],
sourcemap: true,
logLevel: 'info',
};
if (watch) {
const ctx = await context(mainOptions);
await ctx.watch();
} else {
await esbuild(mainOptions);
}
await viteBuild({ configFile: 'vite.config.ts', build: watch ? { watch: {} } : undefined });