mirror of
https://gh-proxy.org/https://github.com/klinsmaya/LobsterAI.git
synced 2026-11-08 01:06:44 +08:00
95 lines
2.5 KiB
TypeScript
95 lines
2.5 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 path from 'path';
|
|
import fs from 'fs';
|
|
|
|
// https://vitejs.dev/config/
|
|
const devPort = 5175;
|
|
const katexVersion = process.env.npm_package_dependencies_katex?.replace(/^[~^]/, '') || '0.16.0';
|
|
|
|
export default defineConfig({
|
|
define: {
|
|
// KaTeX ESM bundle references this compile-time constant.
|
|
__VERSION__: JSON.stringify(katexVersion),
|
|
},
|
|
plugins: [
|
|
react(),
|
|
electron([
|
|
{
|
|
// 主进程入口文件
|
|
entry: 'src/main/main.ts',
|
|
vite: {
|
|
build: {
|
|
sourcemap: true,
|
|
outDir: 'dist-electron',
|
|
minify: false,
|
|
rollupOptions: {
|
|
external: (id) => {
|
|
const staticExternals = ['sql.js', 'discord.js', 'zlib-sync', '@discordjs/opus', 'bufferutil', 'utf-8-validate', 'node-nim', 'nim-web-sdk-ng'];
|
|
if (staticExternals.includes(id)) return true;
|
|
if (id.startsWith('@larksuite/openclaw-lark-tools') || id.startsWith('@larksuite/openclaw-lark')) return true;
|
|
return false;
|
|
},
|
|
output: {
|
|
// Keep CJS format (default), but load via ESM loader.mjs
|
|
inlineDynamicImports: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
onstart() {
|
|
// Signal that the main process bundle is ready for electron to load
|
|
fs.writeFileSync('dist-electron/.electron-ready', '');
|
|
},
|
|
},
|
|
{
|
|
// 预加载脚本入口文件
|
|
entry: 'src/main/preload.ts',
|
|
vite: {
|
|
build: {
|
|
sourcemap: true,
|
|
outDir: 'dist-electron',
|
|
minify: false,
|
|
},
|
|
},
|
|
onstart() {},
|
|
},
|
|
]),
|
|
renderer(),
|
|
],
|
|
base: process.env.NODE_ENV === 'development' ? '/' : './',
|
|
resolve: {
|
|
alias: {
|
|
'@': path.resolve(__dirname, './src/renderer'),
|
|
},
|
|
},
|
|
build: {
|
|
outDir: 'dist',
|
|
emptyOutDir: true,
|
|
sourcemap: true,
|
|
minify: false,
|
|
},
|
|
server: {
|
|
port: devPort,
|
|
strictPort: true,
|
|
host: true,
|
|
hmr: {
|
|
port: devPort,
|
|
},
|
|
watch: {
|
|
usePolling: false,
|
|
},
|
|
},
|
|
optimizeDeps: {
|
|
exclude: ['electron', '@larksuite/openclaw-lark-tools', '@larksuite/openclaw-lark'],
|
|
esbuildOptions: {
|
|
define: {
|
|
__VERSION__: JSON.stringify(katexVersion),
|
|
},
|
|
},
|
|
},
|
|
clearScreen: false,
|
|
});
|