61 lines
1.6 KiB
TypeScript
61 lines
1.6 KiB
TypeScript
import { defineConfig } from "vite"
|
||
import vue from "@vitejs/plugin-vue"
|
||
import AutoImport from "unplugin-auto-import/vite"
|
||
import Components from "unplugin-vue-components/vite"
|
||
import { NaiveUiResolver } from "unplugin-vue-components/resolvers"
|
||
import path from "path"
|
||
|
||
const host = process.env.TAURI_DEV_HOST
|
||
|
||
// https://vite.dev/config/
|
||
export default defineConfig(async () => ({
|
||
plugins: [
|
||
vue(),
|
||
// 1. 自动导入 API
|
||
AutoImport({
|
||
imports: [
|
||
"vue", // 自动导入 Vue 相关 API,如 ref, reactive 等
|
||
{
|
||
"naive-ui": ["useDialog", "useMessage", "useNotification", "useLoadingBar"],
|
||
},
|
||
"vue-router",
|
||
],
|
||
// 可选:生成 TypeScript 类型声明文件
|
||
dts: "src/types/auto-imports.d.ts",
|
||
}),
|
||
// 2. 自动导入组件
|
||
Components({
|
||
resolvers: [NaiveUiResolver()],
|
||
// 可选:生成 TypeScript 类型声明文件
|
||
dts: "src/types/components.d.ts",
|
||
}),
|
||
],
|
||
|
||
// Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
|
||
//
|
||
// 1. prevent Vite from obscuring rust errors
|
||
clearScreen: false,
|
||
// 2. tauri expects a fixed port, fail if that port is not available
|
||
server: {
|
||
port: 1420,
|
||
strictPort: true,
|
||
host: host || false,
|
||
hmr: host
|
||
? {
|
||
protocol: "ws",
|
||
host,
|
||
port: 1421,
|
||
}
|
||
: undefined,
|
||
watch: {
|
||
// 3. tell Vite to ignore watching `src-tauri`
|
||
ignored: ["**/src-tauri/**"],
|
||
},
|
||
},
|
||
resolve: {
|
||
alias: {
|
||
"@": path.resolve(__dirname, "./src"),
|
||
},
|
||
},
|
||
}))
|