- fix(types): 统一导入到 src/types.ts,移除 shared/types 残留路径

- chore(tsconfig): 将 include 扩展为 src/**/* 覆盖迁移后的源文件
- feat(build): Vite 设置 root 为 src,并将 build.outDir 设为 ../dist 以匹配 Tauri frontendDist
- refactor(api): 去除未使用的 plugin-shell import;统一 electronAPI 类型定义至 vite-env.d.ts
- build: 验证 renderer 构建通过,产物输出至 dist/
This commit is contained in:
Jason
2025-08-23 23:11:39 +08:00
parent 12fa80e002
commit 55c62a3753
11 changed files with 22 additions and 2314 deletions

2274
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
import { useState, useEffect, useRef } from "react"; import { useState, useEffect, useRef } from "react";
import { Provider } from "../shared/types"; import { Provider } from "./types";
import ProviderList from "./components/ProviderList"; import ProviderList from "./components/ProviderList";
import AddProviderModal from "./components/AddProviderModal"; import AddProviderModal from "./components/AddProviderModal";
import EditProviderModal from "./components/EditProviderModal"; import EditProviderModal from "./components/EditProviderModal";

View File

@@ -1,5 +1,5 @@
import React from "react"; import React from "react";
import { Provider } from "../../shared/types"; import { Provider } from "../types";
import ProviderForm from "./ProviderForm"; import ProviderForm from "./ProviderForm";
interface AddProviderModalProps { interface AddProviderModalProps {

View File

@@ -1,5 +1,5 @@
import React from 'react' import React from 'react'
import { Provider } from '../../shared/types' import { Provider } from '../types'
import ProviderForm from './ProviderForm' import ProviderForm from './ProviderForm'
interface EditProviderModalProps { interface EditProviderModalProps {
@@ -28,4 +28,4 @@ const EditProviderModal: React.FC<EditProviderModalProps> = ({ provider, onSave,
) )
} }
export default EditProviderModal export default EditProviderModal

View File

@@ -1,5 +1,5 @@
import React, { useState, useEffect } from "react"; import React, { useState, useEffect } from "react";
import { Provider } from "../../shared/types"; import { Provider } from "../types";
import { import {
updateCoAuthoredSetting, updateCoAuthoredSetting,
checkCoAuthoredSetting, checkCoAuthoredSetting,

View File

@@ -1,5 +1,5 @@
import React from 'react' import React from 'react'
import { Provider } from '../../shared/types' import { Provider } from '../types'
import './ProviderList.css' import './ProviderList.css'
interface ProviderListProps { interface ProviderListProps {
@@ -113,4 +113,4 @@ const ProviderList: React.FC<ProviderListProps> = ({
) )
} }
export default ProviderList export default ProviderList

View File

@@ -1,6 +1,5 @@
import { invoke } from '@tauri-apps/api/core'; import { invoke } from '@tauri-apps/api/core';
import { open } from '@tauri-apps/plugin-shell'; import { Provider } from '../types';
import { Provider } from '../../shared/types';
// 定义配置状态类型 // 定义配置状态类型
interface ConfigStatus { interface ConfigStatus {
@@ -160,4 +159,4 @@ if (typeof window !== 'undefined') {
}; };
} }
export default tauriAPI; export default tauriAPI;

View File

@@ -1,29 +1,11 @@
export interface Provider { export interface Provider {
id: string id: string;
name: string name: string;
settingsConfig: Record<string, any> // 完整的Claude Code settings.json配置 settingsConfig: Record<string, any>; // 完整的 Claude Code settings.json 配置
websiteUrl?: string websiteUrl?: string;
} }
export interface AppConfig { export interface AppConfig {
providers: Record<string, Provider> providers: Record<string, Provider>;
current: string current: string;
} }
declare global {
interface Window {
electronAPI: {
getProviders: () => Promise<Record<string, Provider>>
getCurrentProvider: () => Promise<string>
addProvider: (provider: Provider) => Promise<boolean>
deleteProvider: (id: string) => Promise<boolean>
updateProvider: (provider: Provider) => Promise<boolean>
switchProvider: (providerId: string) => Promise<boolean>
importCurrentConfigAsDefault: () => Promise<{ success: boolean; providerId?: string }>
getClaudeCodeConfigPath: () => Promise<string>
selectConfigFile: () => Promise<string | null>
openConfigFolder: () => Promise<boolean>
openExternal: (url: string) => Promise<boolean>
}
}
}

4
src/vite-env.d.ts vendored
View File

@@ -1,6 +1,6 @@
/// <reference types="vite/client" /> /// <reference types="vite/client" />
import { Provider } from './shared/types'; import { Provider } from './types';
interface ImportResult { interface ImportResult {
success: boolean; success: boolean;
@@ -36,4 +36,4 @@ declare global {
} }
} }
export {}; export {};

View File

@@ -15,6 +15,6 @@
"noUnusedParameters": true, "noUnusedParameters": true,
"noFallthroughCasesInSwitch": true "noFallthroughCasesInSwitch": true
}, },
"include": ["src/renderer/**/*"], "include": ["src/**/*"],
"references": [{ "path": "./tsconfig.node.json" }] "references": [{ "path": "./tsconfig.node.json" }]
} }

View File

@@ -2,10 +2,11 @@ import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react' import react from '@vitejs/plugin-react'
export default defineConfig({ export default defineConfig({
root: 'src',
plugins: [react()], plugins: [react()],
base: './', base: './',
build: { build: {
outDir: 'dist', outDir: '../dist',
emptyOutDir: true emptyOutDir: true
}, },
server: { server: {
@@ -14,4 +15,4 @@ export default defineConfig({
}, },
clearScreen: false, clearScreen: false,
envPrefix: ['VITE_', 'TAURI_'] envPrefix: ['VITE_', 'TAURI_']
}) })