Files
NyaHome/webui/vite.config.ts
T

73 lines
1.7 KiB
TypeScript

import {fileURLToPath, URL} from 'node:url'
import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import vueDevTools from 'vite-plugin-vue-devtools'
import {readFileSync} from 'node:fs'
import {resolve} from 'path'
import AutoImport from 'unplugin-auto-import/vite'
import {NaiveUiResolver} from 'unplugin-vue-components/resolvers'
import Components from 'unplugin-vue-components/vite'
import {unheadVueComposablesImports} from '@unhead/vue'
// 从 package.json 里搞到 WebUI 版本号
const pkg = JSON.parse(readFileSync(resolve(__dirname, 'package.json'), 'utf-8'))
// https://vite.dev/config/
export default defineConfig({
plugins: [
vue(),
vueJsx(),
vueDevTools(),
AutoImport({
imports: [
'vue',
{
'naive-ui': ['useDialog', 'useMessage', 'useNotification', 'useLoadingBar'],
},
unheadVueComposablesImports,
],
}),
Components({
resolvers: [NaiveUiResolver()],
}),
],
define: {
__VERSION__: JSON.stringify(pkg.version),
},
build: {
rolldownOptions: {
input: {
index: resolve(__dirname, 'index.html'),
},
},
outDir: '../src/nyahome/static',
},
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)),
},
},
server: {
proxy: {
'/api': {
target: 'http://localhost:9000',
changeOrigin: true,
},
'/admin': {
target: 'http://localhost:9000',
changeOrigin: true,
},
'/nyahome': {
target: 'http://localhost:9000',
changeOrigin: true,
},
'/download': {
target: 'http://localhost:9000',
changeOrigin: true,
},
},
},
})