Nuxt Electron
整合 Nuxt 和 Electron
功能
- 📦 開箱即用
- 🔥 熱重啟 (主進程)
- 🚀 熱重載 (預載腳本)
快速設定
- 將以下相依性加入您的專案
# Using pnpm
pnpm add -D nuxt-electron vite-plugin-electron vite-plugin-electron-renderer electron electron-builder
# Using yarn
yarn add --dev nuxt-electron vite-plugin-electron vite-plugin-electron-renderer electron electron-builder
# Using npm
npm install --save-dev nuxt-electron vite-plugin-electron vite-plugin-electron-renderer electron electron-builder
- 將
nuxt-electron
加入nuxt.config.ts
的modules
區段
export default defineNuxtConfig({
modules: ['nuxt-electron'],
electron: {
build: [
{
// Main-Process entry file of the Electron App.
entry: 'electron/main.ts',
},
],
},
})
- 建立
electron/main.ts
檔案並輸入以下程式碼
import { app, BrowserWindow } from 'electron'
app.whenReady().then(() => {
new BrowserWindow().loadURL(process.env.VITE_DEV_SERVER_URL)
})
- 將
main
條目加入package.json
{
+ "main": "dist-electron/main.js"
}
就這樣!您現在可以在您的 Nuxt 應用程式中使用 Electron 了 ✨
Electron 選項
這是基於
vite-plugin-electron
,詳細選項請參閱文件
export interface ElectronOptions {
/**
* `build` can specify multiple entry builds, which can be Main process, Preload scripts, Worker process, etc.
*
* @example
*
* ```js
* export default defineNuxtConfig({
* modules: ['nuxt-electron'],
* electron: {
* build: [
* {
* // Main-Process entry file of the Electron App.
* entry: 'electron/main.ts',
* },
* ],
* },
* })
* ```
*/
build: import('vite-plugin-electron').ElectronOptions[],
/**
* @see https://github.com/electron-vite/vite-plugin-electron-renderer
*/
renderer?: Parameters<typeof import('vite-plugin-electron-renderer').default>[0]
/**
* nuxt-electron will modify some options by default
*
* @defaultValue
*
* ```js
* export default defineNuxtConfig({
* ssr: false,
* app: {
* baseURL: './',
* buildAssetsDir: '/',
* },
* runtimeConfig: {
* app: {
* baseURL: './',
* buildAssetsDir: '/',
* },
* },
* nitro: {
* runtimeConfig: {
* app: {
* baseURL: './,
* }
* }
* },
* })
* ```
*/
disableDefaultOptions?: boolean
}
建議的結構
讓我們以官方的 nuxt-starter-v3 範本為例
+ ├─┬ electron
+ │ └── main.ts
├─┬ public
│ └── favicon.ico
├── .gitignore
├── .npmrc
├── index.html
├── app.vue
├── nuxt.config.ts
├── package.json
├── README.md
└── tsconfig.json
範例
注意事項
預設情況下,我們強制應用程式在 SPA 模式下執行,因為桌面應用程式不需要 SSR
如果您想完全自訂預設行為,您可以透過 disableDefaultOptions
停用它
待辦事項
- 撰寫測試