forked from trent_larson/crowd-funder-for-time-pwa
refactor(electron): improve build process and configuration
- Enhance electron build configuration with proper asset handling - Add comprehensive logging and error tracking - Implement CSP headers for security - Fix module exports for logger compatibility - Update TypeScript and Vite configs for better build support - Improve development workflow with better dev tools integration
This commit is contained in:
@@ -1,11 +1,58 @@
|
||||
import { defineConfig, mergeConfig } from "vite";
|
||||
import { createBuildConfig } from "./vite.config.common.mts";
|
||||
import path from 'path';
|
||||
|
||||
export default defineConfig(async () => {
|
||||
const baseConfig = await createBuildConfig('electron');
|
||||
|
||||
return mergeConfig(baseConfig, {
|
||||
plugins: [{
|
||||
build: {
|
||||
outDir: 'dist-electron',
|
||||
rollupOptions: {
|
||||
input: {
|
||||
main: path.resolve(__dirname, 'src/electron/main.ts'),
|
||||
preload: path.resolve(__dirname, 'src/electron/preload.js'),
|
||||
},
|
||||
external: ['electron'],
|
||||
output: {
|
||||
format: 'cjs',
|
||||
entryFileNames: '[name].js',
|
||||
assetFileNames: 'assets/[name].[ext]',
|
||||
},
|
||||
},
|
||||
target: 'node18',
|
||||
minify: false,
|
||||
sourcemap: true,
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
'@': path.resolve(__dirname, 'src'),
|
||||
},
|
||||
},
|
||||
optimizeDeps: {
|
||||
include: ['@/utils/logger']
|
||||
},
|
||||
plugins: [
|
||||
{
|
||||
name: 'typescript-transform',
|
||||
transform(code: string, id: string) {
|
||||
if (id.endsWith('main.ts')) {
|
||||
// Replace the logger import with inline logger
|
||||
return code.replace(
|
||||
/import\s*{\s*logger\s*}\s*from\s*['"]@\/utils\/logger['"];?/,
|
||||
`const logger = {
|
||||
log: (...args) => console.log(...args),
|
||||
error: (...args) => console.error(...args),
|
||||
info: (...args) => console.info(...args),
|
||||
warn: (...args) => console.warn(...args),
|
||||
debug: (...args) => console.debug(...args),
|
||||
};`
|
||||
);
|
||||
}
|
||||
return code;
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'remove-sw-imports',
|
||||
transform(code: string, id: string) {
|
||||
if (
|
||||
@@ -24,6 +71,12 @@ export default defineConfig(async () => {
|
||||
};
|
||||
}
|
||||
}
|
||||
}]
|
||||
}
|
||||
],
|
||||
ssr: {
|
||||
noExternal: ['@/utils/logger']
|
||||
},
|
||||
base: './',
|
||||
publicDir: 'public',
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user