Plugins for automatic exposeInMainWorld
everething you exported from preload and easely importing exposed api in renderer.
// preload.ts
export const foo = 'foo string'
// Equivalent
electron.contextBridge.exposeInMainWorld('__electron_preload_foo__', 'foo string')
// renderer.ts
import {foo} from '#preload'
// Equivalent
const foo = window.__electron_preload_foo__
Only named exports are supported.
export * from 'file' // ❌ Will not work
export {prop} from 'file' // ✔
export * as props from 'file' // ❌ Will not work
import * as file from 'file'
export const props = file // ⚠ Will work but not recommended for security reasons
This package contains two plugins: for prelaod and renderer builds
// /preload/vite.config.ts
import {preload} from 'unplugin-auto-expose';
export default defineConfig({
plugins: [
preload.vite()
]
})
// /renderer/vite.config.ts
import {renderer} from 'unplugin-auto-expose';
export default defineConfig({
plugins: [
renderer.vite({
preloadEntry: '/absolute/path/to/preload.ts'
})
]
})
To configurate the TypeScript, add a path to your renderer tsconfig.json
:
{
"compilerOptions": {
"paths": {
"#preload": [
"/path/to/preload"
]
}
}
}