build: add solution and client bundling scripts
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
<Solution>
|
||||||
|
<Folder Name="/backend/">
|
||||||
|
<Project Path="backend/TarninaHub.csproj" />
|
||||||
|
</Folder>
|
||||||
|
</Solution>
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import { spawnSync } from 'node:child_process'
|
||||||
|
import { dirname, resolve } from 'node:path'
|
||||||
|
import { fileURLToPath } from 'node:url'
|
||||||
|
|
||||||
|
const root = resolve(dirname(fileURLToPath(import.meta.url)), '..')
|
||||||
|
|
||||||
|
function run(command) {
|
||||||
|
console.log(`\n> ${command}`)
|
||||||
|
const result = spawnSync(command, { cwd: root, stdio: 'inherit', shell: true })
|
||||||
|
if (result.status !== 0) {
|
||||||
|
console.error(`\n[build] Command failed: ${command}`)
|
||||||
|
process.exit(result.status ?? 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
run('npm --prefix client run build')
|
||||||
|
run('node scripts/copy-client.mjs')
|
||||||
|
run('dotnet build HubMi.slnx --configuration Release')
|
||||||
|
|
||||||
|
console.log('\n[build] Done.')
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
import { cpSync, existsSync, mkdirSync, rmSync } from 'node:fs'
|
||||||
|
import { dirname, join, resolve } from 'node:path'
|
||||||
|
import { fileURLToPath } from 'node:url'
|
||||||
|
|
||||||
|
const root = resolve(dirname(fileURLToPath(import.meta.url)), '..')
|
||||||
|
const source = join(root, 'client', 'dist')
|
||||||
|
const target = join(root, 'backend', 'wwwroot')
|
||||||
|
|
||||||
|
if (!existsSync(source)) {
|
||||||
|
console.error(`[copy] Build output not found: ${source}. Run "npm run build" in client first.`)
|
||||||
|
process.exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
rmSync(target, { recursive: true, force: true })
|
||||||
|
mkdirSync(target, { recursive: true })
|
||||||
|
cpSync(source, target, { recursive: true })
|
||||||
|
|
||||||
|
console.log(`[copy] Copied ${source} -> ${target}`)
|
||||||
Reference in New Issue
Block a user