Files
weflow-new/vite.config.ts
T
2026-04-03 19:34:32 +08:00

181 lines
4.2 KiB
TypeScript

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import electron from 'vite-plugin-electron'
import renderer from 'vite-plugin-electron-renderer'
import { resolve } from 'path'
const handleElectronOnStart = (options: { reload: () => void }) => {
options.reload()
}
export default defineConfig({
base: './',
server: {
port: 3000,
strictPort: false // 如果3000被占用,自动尝试下一个
},
build: {
chunkSizeWarningLimit: 900,
commonjsOptions: {
ignoreDynamicRequires: true
}
},
optimizeDeps: {
exclude: []
},
plugins: [
react(),
electron([
{
entry: 'electron/main.ts',
onstart: handleElectronOnStart,
vite: {
build: {
outDir: 'dist-electron',
rollupOptions: {
external: [
'better-sqlite3',
'koffi',
'fsevents',
'whisper-node',
'shelljs',
'exceljs',
'node-llama-cpp',
'sudo-prompt'
]
}
}
}
},
{
entry: 'electron/annualReportWorker.ts',
onstart: handleElectronOnStart,
vite: {
build: {
outDir: 'dist-electron',
rollupOptions: {
external: [
'koffi',
'fsevents'
],
output: {
entryFileNames: 'annualReportWorker.js',
inlineDynamicImports: true
}
}
}
}
},
{
entry: 'electron/dualReportWorker.ts',
onstart: handleElectronOnStart,
vite: {
build: {
outDir: 'dist-electron',
rollupOptions: {
external: [
'koffi',
'fsevents'
],
output: {
entryFileNames: 'dualReportWorker.js',
inlineDynamicImports: true
}
}
}
}
},
{
entry: 'electron/imageSearchWorker.ts',
onstart: handleElectronOnStart,
vite: {
build: {
outDir: 'dist-electron',
rollupOptions: {
output: {
entryFileNames: 'imageSearchWorker.js',
inlineDynamicImports: true
}
}
}
}
},
{
entry: 'electron/wcdbWorker.ts',
onstart: handleElectronOnStart,
vite: {
build: {
outDir: 'dist-electron',
rollupOptions: {
external: [
'better-sqlite3',
'koffi',
'fsevents'
],
output: {
entryFileNames: 'wcdbWorker.js',
inlineDynamicImports: true
}
}
}
}
},
{
entry: 'electron/transcribeWorker.ts',
onstart: handleElectronOnStart,
vite: {
build: {
outDir: 'dist-electron',
rollupOptions: {
external: [
'sherpa-onnx-node'
],
output: {
entryFileNames: 'transcribeWorker.js',
inlineDynamicImports: true
}
}
}
}
},
{
entry: 'electron/exportWorker.ts',
onstart: handleElectronOnStart,
vite: {
build: {
outDir: 'dist-electron',
rollupOptions: {
external: [
'better-sqlite3',
'koffi',
'fsevents',
'exceljs'
],
output: {
entryFileNames: 'exportWorker.js',
inlineDynamicImports: true
}
}
}
}
},
{
entry: 'electron/preload.ts',
onstart: handleElectronOnStart,
vite: {
build: {
outDir: 'dist-electron'
}
}
}
]),
renderer()
],
resolve: {
dedupe: ['react', 'react-dom'],
alias: {
'@': resolve(__dirname, 'src')
}
}
})