mirror of
https://github.com/codeaashu/claude-code.git
synced 2026-04-08 22:28:48 +03:00
claude-code
This commit is contained in:
58
scripts/build-web.ts
Normal file
58
scripts/build-web.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
// scripts/build-web.ts
|
||||
// Bundles the browser-side terminal frontend.
|
||||
//
|
||||
// Usage:
|
||||
// bun scripts/build-web.ts # dev build
|
||||
// bun scripts/build-web.ts --watch # watch mode
|
||||
// bun scripts/build-web.ts --minify # production (minified)
|
||||
|
||||
import * as esbuild from 'esbuild'
|
||||
import { resolve, dirname } from 'path'
|
||||
import { fileURLToPath } from 'url'
|
||||
|
||||
const __dir: string =
|
||||
(import.meta as any).dir ??
|
||||
(import.meta as any).dirname ??
|
||||
dirname(fileURLToPath(import.meta.url))
|
||||
|
||||
const ROOT = resolve(__dir, '..')
|
||||
const ENTRY = resolve(ROOT, 'src/server/web/terminal.ts')
|
||||
const OUT_DIR = resolve(ROOT, 'src/server/web/public')
|
||||
|
||||
const watch = process.argv.includes('--watch')
|
||||
const minify = process.argv.includes('--minify')
|
||||
|
||||
const buildOptions: esbuild.BuildOptions = {
|
||||
entryPoints: [ENTRY],
|
||||
bundle: true,
|
||||
platform: 'browser',
|
||||
target: ['es2020', 'chrome90', 'firefox90', 'safari14'],
|
||||
format: 'esm',
|
||||
outdir: OUT_DIR,
|
||||
// CSS imported from JS is auto-emitted alongside the JS output
|
||||
loader: { '.css': 'css' },
|
||||
minify,
|
||||
sourcemap: minify ? false : 'inline',
|
||||
tsconfig: resolve(ROOT, 'src/server/web/tsconfig.json'),
|
||||
logLevel: 'info',
|
||||
}
|
||||
|
||||
async function main() {
|
||||
if (watch) {
|
||||
const ctx = await esbuild.context(buildOptions)
|
||||
await ctx.watch()
|
||||
console.log('Watching src/server/web/terminal.ts...')
|
||||
} else {
|
||||
const start = Date.now()
|
||||
const result = await esbuild.build(buildOptions)
|
||||
if (result.errors.length > 0) {
|
||||
process.exit(1)
|
||||
}
|
||||
console.log(`Web build complete in ${Date.now() - start}ms → ${OUT_DIR}`)
|
||||
}
|
||||
}
|
||||
|
||||
main().catch(err => {
|
||||
console.error(err)
|
||||
process.exit(1)
|
||||
})
|
||||
Reference in New Issue
Block a user