mirror of
https://github.com/jeffvli/feishin.git
synced 2024-11-20 06:27:09 +01:00
52 lines
1.4 KiB
TypeScript
52 lines
1.4 KiB
TypeScript
import { rmSync } from 'fs';
|
|
import path from 'path';
|
|
import { defineConfig } from 'vite';
|
|
import react from '@vitejs/plugin-react';
|
|
import electron from 'vite-electron-plugin';
|
|
import { customStart } from 'vite-electron-plugin/plugin';
|
|
import pkg from './package.json';
|
|
|
|
rmSync(path.join(__dirname, 'dist-electron'), { recursive: true, force: true });
|
|
|
|
// https://vitejs.dev/config/
|
|
export default defineConfig({
|
|
resolve: {
|
|
alias: {
|
|
'@': path.join(__dirname, 'src'),
|
|
styles: path.join(__dirname, 'src/assets/styles'),
|
|
},
|
|
},
|
|
plugins: [
|
|
react(),
|
|
electron({
|
|
outDir: path.join(__dirname, 'release/app/dist'),
|
|
include: ['electron', 'preload', 'types'],
|
|
transformOptions: {
|
|
sourcemap: !!process.env.VSCODE_DEBUG,
|
|
},
|
|
// Will start Electron via VSCode Debug
|
|
plugins: process.env.VSCODE_DEBUG
|
|
? [customStart(debounce(() => console.log(/* For `.vscode/.debug.script.mjs` */ '[startup] Electron App')))]
|
|
: undefined,
|
|
}),
|
|
],
|
|
server: process.env.VSCODE_DEBUG
|
|
? (() => {
|
|
const url = new URL(pkg.debug.env.VITE_DEV_SERVER_URL);
|
|
return {
|
|
host: url.hostname,
|
|
port: +url.port,
|
|
};
|
|
})()
|
|
: undefined,
|
|
clearScreen: false,
|
|
});
|
|
|
|
function debounce<Fn extends (...args: any[]) => void>(fn: Fn, delay = 299) {
|
|
let t: NodeJS.Timeout;
|
|
return ((...args) => {
|
|
clearTimeout(t);
|
|
t = setTimeout(() => fn(...args), delay);
|
|
}) as Fn;
|
|
}
|