Integrate Nuxt and Electron
- 🚀 High-performance (Not Bundle, based on esbuild)
- 📦 Out of the box
- 🔥 Hot restart
- Add the following dependency to your project
# Using pnpm
pnpm add -D nuxt-electron vite-electron-plugin electron electron-builder
# Using yarn
yarn add --dev nuxt-electron vite-electron-plugin electron electron-builder
# Using npm
npm install --save-dev nuxt-electron vite-electron-plugin electron electron-builder- Add
nuxt-electronto themodulessection ofnuxt.config.ts
export default defineNuxtConfig({
modules: [
'nuxt-electron',
],
})- Create the
electron/main.tsfile and type the following code
import { app, BrowserWindow } from 'electron'
app.whenReady().then(() => {
new BrowserWindow().loadURL(process.env.VITE_DEV_SERVER_URL)
})- Add the
mainentry topackage.json
{
+ "main": "dist-electron/main.js"
}That's it! You can now use Electron in your Nuxt app ✨
This is based on the
vite-electron-plugin, see the Documents for more detailed options
Here is the default electron options
export default defineNuxtConfig({
modules: [
'nuxt-electron',
],
electron: {
include: ['electron'],
outDir: 'dist-electron',
},
})Let's use the official nuxt-starter-v3 template as an example
+ ├─┬ electron
+ │ └── main.ts
├─┬ public
│ └── favicon.ico
├── .gitignore
├── .npmrc
├── index.html
├── app.vue
├── nuxt.config.ts
├── package.json
├── README.md
└── tsconfig.jsonBy default, we force the App to run in SPA mode since we don't need SSR for desktop apps