快速搭建一个electron-vite项目

1. 初始化项目

在命令行中运行以下命令

npm create @quick-start/electron@latest

也可以通过附加命令行选项直接指定项目名称和你想要使用的模版。例如,要构建一个 Electron + Vue 项目,运行:

# npm 7+,需要添加额外的 --:
npm create @quick-start/electron@latest my-app -- --template vue

目前支持的模版预设如下

JavaScriptTypeScript
vanillavanilla-ts
vuevue-ts
reactreact-ts
sveltesvelte-ts
solidsolid-ts

2. 按提示选择需要的配置

下面是我的选择,可以根据自己的需求进行选择

在这里插入图片描述

Project name项目名称,自定义输入
Select a framework选择框架,vanilla, vue, react, svelte, solid可选择,演示这里我们选择vue
Add TypeScript是否添加TypeScript,演示这里我们选择no
Add Electron updater plugin是否添加Electron更新插件,yes
Enable Electron download mirror proxy镜像下载代理,国内网络建议开启,yes

3. 进入项目目录,安装依赖

进入目录

cd electron-app

安装依赖

npm install

4. 启动项目

npm run dev

出现下面应用窗口说明项目启动成功

5. 目录结构

├── .vscode                  //vscode配置文件(可以不管)
├── build                    // 编译过程输出文件目录
├── dist                    // 打包后输出目录
├── node_modules            // 依赖模块
├── out                     //编译过程输出文件目录
├── resources                // 公共资源文件,主进程使用
│       └── icon.png         //默认图标
├──src                     
│   ├── main               // 主进程开发目录
│   │  └── index.js       //主进程入口文件      
│   ├── preload           // 预加载脚本开发目录
│   │   └── index.js        // 预加载默认脚本
│   └── renderer          // 渲染进程开发目录,类似纯web项目根目录
│              ├── src
│              │    ├── assets  //资源文件目录
│              │    ├── components  //组件目录
│              │    ├── App.vue        // 入口页面
│              │    └── main.js        // 入口文件
│              └── index.js.html        // 默认html文件
├── .editorconfig                    
├── .eslintignore                //eslint代码检查忽略配置文件
├── .eslintrc.cjs                 //eslint代码检查配置文件
├── .gitignore                   //git忽略配置文件
├── .npmrc                       // npm源配置文件
├── .prettierignore               //prettier代码格式化忽略配置文件
├── .prettierrc.yaml              //prettier代码格式化配置文件
├── dev-app-update.yml           
├── electron-builder.yml           //打包配置文件
├──electron.vite.config.mjs       //electron-vite配置文件
├── package-lock.json     
├── package.json              
└──README.md            //项目说明

6. electron-vite官方中文文档

electron-vite | 下一代 Electron 开发构建工具

### 如何在Electron Vite项目创建或配置导航栏 #### 1. 初始化项目并安装依赖 为了在一个新的 Electron-Vite 项目中集成导航栏,首先需要初始化项目环境。确保已经安装了 Node.js 和 npm,在命令行工具中依次执行以下命令: ```bash $ mkdir electron-vite-nav-bar $ cd electron-vite-nav-bar $ npm init -y $ npm install vite vue @vitejs/plugin-vue electron --save-dev ``` 这会建立一个基础的开发框架[^2]。 #### 2. 配置 Vite 构建工具支持 Vue 应用程序 编辑 `package.json` 文件中的脚本部分,添加用于启动项目的指令: ```json { "scripts": { "dev": "vite", "build": "vite build", "serve": "vite preview" } } ``` 接着创建 `vite.config.js` 来指定插件和其他选项: ```javascript import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' export default defineConfig({ plugins: [vue()], }) ``` 此步骤有助于构建过程更加顺畅[^1]。 #### 3. 设置主进程文件 (main.js 或 main.ts) 编写主进程中负责创建浏览器窗口的部分,并引入必要的模块来处理自定义导航条逻辑: ```javascript const { app, BrowserWindow } = require('electron') const path = require('path') function createWindow () { const mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { preload: path.join(__dirname, 'preload.js'), nodeIntegration: true }, frame: false // 移除默认边框以便自定义顶部栏 }) mainWindow.loadURL(process.env.VITE_DEV_SERVER_URL || url.format({ pathname: path.join(__dirname, '../dist/index.html'), protocol: 'file:', slashes: true })) } app.whenReady().then(createWindow) // 处理关闭事件 app.on('window-all-closed', function () { if (process.platform !== 'darwin') app.quit() }) app.on('activate', function () { if (BrowserWindow.getAllWindows().length === 0) createWindow() }) ``` 这里通过设置 `frame: false` 去掉了系统的标题栏,从而允许完全控制应用程序外观[^3]。 #### 4. 开发前端页面与样式 对于 Vue 组件而言,可以在组件内部使用 HTML/CSS/JavaScript 完成美观且功能齐全的导航栏设计。例如,可以采用 Element Plus 这样的 UI 框架快速搭建响应式的头部区域。 ```html <template> <el-header style="background-color:#B3C0D1;"> <!-- 导航栏内容 --> <div class="toolbar"> <span>我的应用</span> <button @click="minimizeApp">-</button> <button @click="maximizeOrRestoreApp">◻</button> <button @click="closeApp">×</button> </div> </el-header> </template> <script setup lang="ts"> import { ElHeader } from 'element-plus'; import { remote } from 'electron'; const minimizeApp = () => remote.BrowserWindow.getFocusedWindow()?.minimize(); const maximizeOrRestoreApp = () => { let win = remote.BrowserWindow.getFocusedWindow(); if (!win?.isMaximized()) win.maximize(); else win.unmaximize(); }; const closeApp = () => remote.BrowserWindow.getFocusedWindow()?.close(); </script> <style scoped> .toolbar button { background:none; border:none; font-size:larger; cursor:pointer; } </style> ``` 上述代码片段展示了如何利用按钮模拟标准窗口控件的行为,同时保持简洁的设计风格。 #### 5. 调整预加载脚本(preload.js) 为了让渲染进程能够访问到一些特定的功能(比如最小化、最大化),还需要适当调整预加载脚本来授予这些权限: ```javascript const { contextBridge, ipcRenderer } = require('electron'); contextBridge.exposeInMainWorld('api', { minimizeApp: () => ipcRenderer.send('minimize-app'), maximizeOrRestoreApp: () => ipcRenderer.send('toggle-maximize-restore'), closeApp: () => ipcRenderer.send('close-app') }); ``` 最后记得更新主进程中监听来自渲染层的消息,并作出相应反应。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值