Files
ycode/electron.vite.config.ts
T

56 lines
1.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { resolve } from 'node:path'
import { defineConfig, externalizeDepsPlugin } from 'electron-vite'
import react from '@vitejs/plugin-react'
const root = process.cwd()
/**
* electron 位于 devDependencies,externalizeDepsPlugin 只处理 dependencies,
* 因此必须显式 external,否则 electron 的 Node 入口会被内联进主进程产物。
*/
// node-pty resolves its shipped native/prebuild resources relative to its own package.
// Preserve that package boundary instead of moving its loader into out/main.
const builtinsExternal = ['electron', 'node-pty']
export default defineConfig({
main: {
plugins: [externalizeDepsPlugin()],
build: {
rollupOptions: {
input: resolve(root, 'src/main/index.ts'),
external: builtinsExternal
}
},
resolve: {
alias: { '@shared': resolve(root, 'src/shared') }
}
},
preload: {
plugins: [externalizeDepsPlugin()],
build: {
rollupOptions: {
input: resolve(root, 'src/preload/index.ts'),
external: builtinsExternal,
// sandbox: true 的 preload 必须是 CommonJS,ESM preload 只能配 sandbox: false
output: { format: 'cjs', entryFileNames: 'index.cjs' }
}
},
resolve: {
alias: { '@shared': resolve(root, 'src/shared') }
}
},
renderer: {
root: resolve(root, 'src/renderer'),
plugins: [react()],
resolve: {
alias: {
'@renderer': resolve(root, 'src/renderer/src'),
'@shared': resolve(root, 'src/shared')
}
},
build: {
rollupOptions: { input: { index: resolve(root, 'src/renderer/index.html'), settings: resolve(root, 'src/renderer/settings.html') } }
}
}
})