mirror of
https://github.com/hicccc77/WeFlow.git
synced 2026-04-02 23:15:59 +00:00
212 lines
5.0 KiB
TypeScript
212 lines
5.0 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
|
||
},
|
||
rollupOptions: {
|
||
output: {
|
||
manualChunks(id) {
|
||
if (!id.includes('node_modules')) return
|
||
|
||
if (id.includes('/react/') || id.includes('/react-dom/') || id.includes('/react-router')) {
|
||
return 'vendor-react'
|
||
}
|
||
|
||
if (id.includes('/echarts') || id.includes('/echarts-for-react')) {
|
||
return 'vendor-echarts'
|
||
}
|
||
|
||
if (
|
||
id.includes('/react-markdown') ||
|
||
id.includes('/remark-gfm') ||
|
||
id.includes('/mdast-') ||
|
||
id.includes('/micromark-') ||
|
||
id.includes('/unified') ||
|
||
id.includes('/vfile')
|
||
) {
|
||
return 'vendor-markdown'
|
||
}
|
||
|
||
if (id.includes('/jszip') || id.includes('/exceljs')) {
|
||
return 'vendor-export'
|
||
}
|
||
|
||
return 'vendor-misc'
|
||
}
|
||
}
|
||
}
|
||
},
|
||
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: {
|
||
alias: {
|
||
'@': resolve(__dirname, 'src')
|
||
}
|
||
}
|
||
})
|