feat(build): 支持桌面端多架构打包矩阵

This commit is contained in:
2026-02-15 23:26:00 +08:00
parent 627e6f9dd3
commit 8245abe217
6 changed files with 72 additions and 14 deletions

View File

@@ -1,4 +1,4 @@
import { rm } from 'node:fs/promises'
import { mkdir, rm } from 'node:fs/promises'
import { parseArgs } from 'node:util'
const ENTRYPOINT = '.output/server/index.mjs'
@@ -7,6 +7,7 @@ const OUTDIR = 'out'
const SUPPORTED_TARGETS: readonly Bun.Build.CompileTarget[] = [
'bun-windows-x64',
'bun-darwin-arm64',
'bun-darwin-x64',
'bun-linux-x64',
'bun-linux-arm64',
]
@@ -43,7 +44,11 @@ const main = async () => {
const suffix = target.replace('bun-', '')
const outfile = `server-${suffix}`
await rm(OUTDIR, { recursive: true, force: true })
await mkdir(OUTDIR, { recursive: true })
await Promise.all([
rm(`${OUTDIR}/${outfile}`, { force: true }),
rm(`${OUTDIR}/${outfile}.exe`, { force: true }),
])
const result = await Bun.build({
entrypoints: [ENTRYPOINT],

View File

@@ -6,9 +6,14 @@
"scripts": {
"build": "vite build",
"compile": "bun compile.ts",
"compile:darwin": "bun compile.ts --target bun-darwin-arm64",
"compile:linux": "bun compile.ts --target bun-linux-x64",
"compile:windows": "bun compile.ts --target bun-windows-x64",
"compile:darwin": "bun run compile:darwin:arm64",
"compile:darwin:arm64": "bun compile.ts --target bun-darwin-arm64",
"compile:darwin:x64": "bun compile.ts --target bun-darwin-x64",
"compile:linux": "bun run compile:linux:x64",
"compile:linux:arm64": "bun compile.ts --target bun-linux-arm64",
"compile:linux:x64": "bun compile.ts --target bun-linux-x64",
"compile:windows": "bun run compile:windows:x64",
"compile:windows:x64": "bun compile.ts --target bun-windows-x64",
"db:generate": "drizzle-kit generate",
"db:migrate": "drizzle-kit migrate",
"db:push": "drizzle-kit push",

View File

@@ -14,13 +14,33 @@
"dependsOn": ["build"],
"outputs": ["out/**"]
},
"compile:darwin:arm64": {
"dependsOn": ["build"],
"outputs": ["out/**"]
},
"compile:darwin:x64": {
"dependsOn": ["build"],
"outputs": ["out/**"]
},
"compile:linux": {
"dependsOn": ["build"],
"outputs": ["out/**"]
},
"compile:linux:arm64": {
"dependsOn": ["build"],
"outputs": ["out/**"]
},
"compile:linux:x64": {
"dependsOn": ["build"],
"outputs": ["out/**"]
},
"compile:windows": {
"dependsOn": ["build"],
"outputs": ["out/**"]
},
"compile:windows:x64": {
"dependsOn": ["build"],
"outputs": ["out/**"]
}
}
}