mirror of
https://github.com/aiclientproxy/proxycast.git
synced 2026-10-16 15:34:08 +08:00
主要更新: - 新增从 Provider /v1/models API 获取模型列表功能 - 当本地模型注册表为空时自动从 API 获取 - 修复 OpenAI 协议中 UTF-8 字符串切片导致的 panic - 统一 Provider ID 与 JSON 文件名一致 - 添加数据库迁移逻辑处理旧版 Provider ID - 清理未使用的模块 (injection, proxy, resilience, telemetry) - 重构 workspace crates 结构 版本: 0.47.4
76 lines
2.3 KiB
TypeScript
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/**",
|
|
],
|
|
},
|
|
};
|
|
});
|