build(vite): 添加vite-plugin-static-copy插件以复制Swagger UI资源

为了在构建过程中将Swagger UI的相关资源复制到指定目录,引入了vite-plugin-static-copy插件。这确保了Swagger UI所需的静态文件能够正确部署到生产环境。
This commit is contained in:
user 2025-04-24 16:14:57 +08:00
parent a2dedfe533
commit 244e86dccf

View File

@ -1,10 +1,30 @@
import { URL, fileURLToPath } from 'node:url'; import { URL, fileURLToPath } from 'node:url';
import { defineConfig } from 'vite'; import { defineConfig, normalizePath } from 'vite';
import vue from '@vitejs/plugin-vue'; import vue from '@vitejs/plugin-vue';
import { viteStaticCopy } from 'vite-plugin-static-copy';
const { getAbsoluteFSPath } = await import('swagger-ui-dist');
const swaggerUiPath = getAbsoluteFSPath();
// eslint-disable-next-line prefer-const // eslint-disable-next-line prefer-const
const config = defineConfig({ const config = defineConfig({
plugins: [vue()], plugins: [
vue(),
viteStaticCopy({
targets: [
{
src: [
`${normalizePath(swaggerUiPath)}/*.{js,css,html,png}`,
`!${normalizePath(swaggerUiPath)}/**/index.html`,
normalizePath(fileURLToPath(new URL('./dist/axios.min.js', import.meta.resolve('axios/package.json')))),
normalizePath(fileURLToPath(new URL('./src/main/webapp/swagger-ui/index.html', import.meta.url))),
],
dest: 'swagger-ui',
},
],
}),
],
root: fileURLToPath(new URL('./src/main/webapp/', import.meta.url)), root: fileURLToPath(new URL('./src/main/webapp/', import.meta.url)),
publicDir: fileURLToPath(new URL('./target/classes/static/public', import.meta.url)), publicDir: fileURLToPath(new URL('./target/classes/static/public', import.meta.url)),
cacheDir: fileURLToPath(new URL('./target/.vite-cache', import.meta.url)), cacheDir: fileURLToPath(new URL('./target/.vite-cache', import.meta.url)),