mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-22 08:40:08 +08:00
This commit introduces a new alias '@data' in the Electron Vite configuration for easier access to the data directory. Additionally, the TypeScript configuration is updated to include path mapping for '@data/*', enhancing module resolution. Several test files related to the PreferenceService have been removed, streamlining the test suite and focusing on essential functionality.
125 lines
4.0 KiB
TypeScript
125 lines
4.0 KiB
TypeScript
import react from '@vitejs/plugin-react-swc'
|
|
import { CodeInspectorPlugin } from 'code-inspector-plugin'
|
|
import { defineConfig, externalizeDepsPlugin } from 'electron-vite'
|
|
import { resolve } from 'path'
|
|
import { visualizer } from 'rollup-plugin-visualizer'
|
|
|
|
const visualizerPlugin = (type: 'renderer' | 'main') => {
|
|
return process.env[`VISUALIZER_${type.toUpperCase()}`] ? [visualizer({ open: true })] : []
|
|
}
|
|
|
|
const isDev = process.env.NODE_ENV === 'development'
|
|
const isProd = process.env.NODE_ENV === 'production'
|
|
|
|
export default defineConfig({
|
|
main: {
|
|
plugins: [externalizeDepsPlugin(), ...visualizerPlugin('main')],
|
|
resolve: {
|
|
alias: {
|
|
'@main': resolve('src/main'),
|
|
'@types': resolve('src/renderer/src/types'),
|
|
'@data': resolve('src/main/data'),
|
|
'@shared': resolve('packages/shared'),
|
|
'@logger': resolve('src/main/services/LoggerService'),
|
|
'@mcp-trace/trace-core': resolve('packages/mcp-trace/trace-core'),
|
|
'@mcp-trace/trace-node': resolve('packages/mcp-trace/trace-node')
|
|
}
|
|
},
|
|
build: {
|
|
rollupOptions: {
|
|
external: ['@libsql/client', 'bufferutil', 'utf-8-validate'],
|
|
output: {
|
|
manualChunks: undefined, // 彻底禁用代码分割 - 返回 null 强制单文件打包
|
|
inlineDynamicImports: true // 内联所有动态导入,这是关键配置
|
|
}
|
|
},
|
|
sourcemap: isDev
|
|
},
|
|
esbuild: isProd ? { legalComments: 'none' } : {},
|
|
optimizeDeps: {
|
|
noDiscovery: isDev
|
|
}
|
|
},
|
|
preload: {
|
|
plugins: [
|
|
react({
|
|
tsDecorators: true
|
|
}),
|
|
externalizeDepsPlugin()
|
|
],
|
|
resolve: {
|
|
alias: {
|
|
'@shared': resolve('packages/shared'),
|
|
'@mcp-trace/trace-core': resolve('packages/mcp-trace/trace-core')
|
|
}
|
|
},
|
|
build: {
|
|
sourcemap: isDev,
|
|
rollupOptions: {
|
|
// Unlike renderer which auto-discovers entries from HTML files,
|
|
// preload requires explicit entry point configuration for multiple scripts
|
|
input: {
|
|
index: resolve(__dirname, 'src/preload/index.ts'),
|
|
simplest: resolve(__dirname, 'src/preload/simplest.ts') // Minimal preload
|
|
},
|
|
output: {
|
|
entryFileNames: '[name].js'
|
|
}
|
|
}
|
|
}
|
|
},
|
|
renderer: {
|
|
plugins: [
|
|
react({
|
|
tsDecorators: true,
|
|
plugins: [
|
|
[
|
|
'@swc/plugin-styled-components',
|
|
{
|
|
displayName: true, // 开发环境下启用组件名称
|
|
fileName: false, // 不在类名中包含文件名
|
|
pure: true, // 优化性能
|
|
ssr: false // 不需要服务端渲染
|
|
}
|
|
]
|
|
]
|
|
}),
|
|
...(isDev ? [CodeInspectorPlugin({ bundler: 'vite' })] : []), // 只在开发环境下启用 CodeInspectorPlugin
|
|
...visualizerPlugin('renderer')
|
|
],
|
|
resolve: {
|
|
alias: {
|
|
'@renderer': resolve('src/renderer/src'),
|
|
'@shared': resolve('packages/shared'),
|
|
'@logger': resolve('src/renderer/src/services/LoggerService'),
|
|
'@data': resolve('src/renderer/src/data'),
|
|
'@mcp-trace/trace-core': resolve('packages/mcp-trace/trace-core'),
|
|
'@mcp-trace/trace-web': resolve('packages/mcp-trace/trace-web')
|
|
}
|
|
},
|
|
optimizeDeps: {
|
|
exclude: ['pyodide'],
|
|
esbuildOptions: {
|
|
target: 'esnext' // for dev
|
|
}
|
|
},
|
|
worker: {
|
|
format: 'es'
|
|
},
|
|
build: {
|
|
target: 'esnext', // for build
|
|
rollupOptions: {
|
|
input: {
|
|
index: resolve(__dirname, 'src/renderer/index.html'),
|
|
miniWindow: resolve(__dirname, 'src/renderer/miniWindow.html'),
|
|
selectionToolbar: resolve(__dirname, 'src/renderer/selectionToolbar.html'),
|
|
selectionAction: resolve(__dirname, 'src/renderer/selectionAction.html'),
|
|
traceWindow: resolve(__dirname, 'src/renderer/traceWindow.html'),
|
|
dataRefactorMigrate: resolve(__dirname, 'src/renderer/dataRefactorMigrate.html')
|
|
}
|
|
}
|
|
},
|
|
esbuild: isProd ? { legalComments: 'none' } : {}
|
|
}
|
|
})
|