Files
proxycast/vite.config.ts
T
coso 6dd714f110 feat: 从 Provider API 获取模型列表 & 修复 UTF-8 切片 panic
主要更新:
- 新增从 Provider /v1/models API 获取模型列表功能
- 当本地模型注册表为空时自动从 API 获取
- 修复 OpenAI 协议中 UTF-8 字符串切片导致的 panic
- 统一 Provider ID 与 JSON 文件名一致
- 添加数据库迁移逻辑处理旧版 Provider ID
- 清理未使用的模块 (injection, proxy, resilience, telemetry)
- 重构 workspace crates 结构

版本: 0.47.4
2026-01-16 12:46:47 +08:00

76 lines
2.3 KiB
TypeScript

/// <reference types="vitest" />
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import svgr from "vite-plugin-svgr";
import path from "path";
import { fileURLToPath } from "url";
// ES 模块中获取 __dirname 的方式
const __dirname = path.dirname(fileURLToPath(import.meta.url));
// 获取 Tauri mock 目录路径
const tauriMockDir = path.resolve(__dirname, "./src/lib/tauri-mock");
export default defineConfig(({ mode }) => {
// 检查是否在 Tauri 环境中运行(通过环境变量判断)
const isTauri = process.env.TAURI_ENV_PLATFORM !== undefined;
// 只在非 Tauri 环境(纯浏览器开发)下使用 mock
const tauriAliases = isTauri ? {} : {
"@tauri-apps/api/core": path.resolve(tauriMockDir, "core.ts"),
"@tauri-apps/api/event": path.resolve(tauriMockDir, "event.ts"),
"@tauri-apps/api/window": path.resolve(tauriMockDir, "window.ts"),
"@tauri-apps/api/app": path.resolve(tauriMockDir, "window.ts"),
"@tauri-apps/api/path": path.resolve(tauriMockDir, "window.ts"),
"@tauri-apps/plugin-dialog": path.resolve(tauriMockDir, "plugin-dialog.ts"),
"@tauri-apps/plugin-shell": path.resolve(tauriMockDir, "plugin-shell.ts"),
"@tauri-apps/plugin-deep-link": path.resolve(tauriMockDir, "plugin-deep-link.ts"),
"@tauri-apps/plugin-global-shortcut": path.resolve(tauriMockDir, "plugin-global-shortcut.ts"),
};
return {
plugins: [
react({
jsxRuntime: mode === "development" ? "automatic" : "automatic",
jsxImportSource: "react",
}),
svgr(),
],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
// 只在非 Tauri 环境下拦截 @tauri-apps/* 导入
...tauriAliases,
},
},
optimizeDeps: {
// 只在非 Tauri 环境下排除 Tauri 包的预构建
exclude: isTauri ? [] : [
"@tauri-apps/api",
"@tauri-apps/plugin-dialog",
"@tauri-apps/plugin-shell",
"@tauri-apps/plugin-deep-link",
"@tauri-apps/plugin-global-shortcut",
],
},
clearScreen: false,
server: {
port: 1420,
strictPort: false,
watch: {
ignored: ["**/src-tauri/**"],
},
},
test: {
globals: true,
environment: "jsdom",
exclude: [
"**/node_modules/**",
"**/dist/**",
"**/scripts/playwright-login/**",
"**/src-tauri/**",
],
},
};
});