本地 RAG 知识库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

37 lines
1.2 KiB

/**
* Vite build 后自动将产物复制到 Spring Boot 静态资源目录。
* 由 npm postbuild 钩子触发。
*/
import { cpSync, existsSync, mkdirSync, readdirSync, rmSync } from 'node:fs';
import { join } from 'node:path';
const DIST = 'dist';
const TARGET = '../src/main/resources/static';
// 1. 清理上一次 Vite 构建的产物(保留 sdk/ 目录)
if (existsSync(TARGET)) {
for (const entry of readdirSync(TARGET)) {
if (entry !== 'sdk') {
rmSync(join(TARGET, entry), { recursive: true, force: true });
}
}
}
// 2. 复制新构建产物
if (existsSync(DIST)) {
cpSync(DIST, TARGET, { recursive: true });
console.log('✓ 已复制到', TARGET);
} else {
console.error('✗ dist 目录不存在,请先执行 vite build');
process.exit(1);
}
// 3. 将 sdk-test 多页产物移动到 sdk/test.html(资源引用为绝对路径 /assets/...,移动后仍可解析)
const sdkTestHtml = join(TARGET, 'sdk-test.html');
if (existsSync(sdkTestHtml)) {
const sdkDir = join(TARGET, 'sdk');
if (!existsSync(sdkDir)) mkdirSync(sdkDir, { recursive: true });
cpSync(sdkTestHtml, join(sdkDir, 'test.html'));
rmSync(sdkTestHtml);
console.log('✓ 已移动 sdk-test.html → sdk/test.html');
}