当前位置: 首页 > news >正文

创建vue+electron项目流程

一个vue3和electron最基本的环境搭建步骤如下:// 安装 vite + vue3 + vite-plugin-vue-setup-extend + less + normalize.css + mitt + pinia + vue-router
npm create vue@latest
npm i vite-plugin-vue-setup-extend -D
npm i less -D
npm i normalize.css -S  (在vue的main.js引入:import 'normalize.css')
npm i mitt -S (链接:https://blog.csdn.net/weixin_50236973/article/details/143649070)
npm i pinia -S (链接:https://blog.csdn.net/weixin_50236973/article/details/143634741)
npm i vue-router -S (链接:https://blog.csdn.net/weixin_50236973/article/details/143606887)// vite.config.ts内配置vite-plugin-vue-setup-extend
export default defineConfig({plugins: [vue(),VueSetupExtend()],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))}}
})// 安装electron,然后在根目录下创建main.js文件, package.json也要配置main:main.js
npm i electron -D// 安装nodemon, 监听js css html vue文件发生变化后重新渲染,然后配置package.json
npm i nodemon -D"scripts": {"start": "nodemon --exec electron . --watch ./ --ext .js,.html,.css,.vue"
}// 安装electron-win-state,记录窗口停留的位置
npm i electron-win-state -S// 创建preload文件夹,创建一个index.js// 完善一下官网的案例
app.whenReady().then(() => {createWindow()app.on('activate', () => {// const {BrowserWindow} = require('electron')if (BrowserWindow.getAllWindows().length === 0) createWindow()})
})app.on('window-all-closed', () => {if (process.platform !== 'darwin') app.quit()
})

具体项目信息查看本地上传的资源, 这里就的代码只拷贝一部分比较重要的

// main.js
const {app, BrowserWindow} = require('electron')
const path = require('path')const WinState = require('electron-win-state').defaultfunction createWindow() {const winState = new WinState({defaultWidth: 1000,defaultHeight: 800,// 给打开的窗口命名electronStoreOptions: {name: 'window-state-open'}})const win = new BrowserWindow({...winState.winOptions,webPreferences: {preload: path.resolve(__dirname, 'preload/index.js'),sandbox: false},})win.loadURL('http://localhost:5173')winState.manage(win)
}app.whenReady().then(() => {createWindow();app.on('activate', () => {if (BrowserWindow.getAllWindows().length === 0) createWindow()})
})app.on('window-all-closed', () => {if (process.platform !== 'darwin') app.quit()
})
// package.json
{"name": "readit","version": "0.0.0","description": "first electron app","private": true,"main": "main.js","scripts": {"dev": "vite","build": "run-p type-check \"build-only {@}\" --","preview": "vite preview","build-only": "vite build","type-check": "vue-tsc --build --force","start": "nodemon --exec electron . --watch ./ --ext .js,.html,.css,.vue"},"dependencies": {"vue": "^3.5.12"},"devDependencies": {"@tsconfig/node22": "^22.0.0","@types/node": "^22.9.0","@vitejs/plugin-vue": "^5.1.4","@vue/tsconfig": "^0.5.1","electron": "^33.2.0","electron-win-state": "^1.1.22","nodemon": "^3.1.7","npm-run-all2": "^7.0.1","typescript": "~5.6.3","vite": "^5.4.10","vite-plugin-vue-devtools": "^7.5.4","vue-tsc": "^2.1.10"}
}
// index.html
<!DOCTYPE html>
<html lang=""><head><meta charset="UTF-8"><link rel="icon" href="/favicon.ico"><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 去掉窗口的Content-Security-Policy警告,告诉该页面的内容是使用本地的 --><meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src 'self' data:; script-src 'self'; style-src 'self' 'unsafe-inline'"><title>Vite App</title></head><body><div id="app"></div><script type="module" src="/src/main.ts"></script></body>
</html>

http://www.lryc.cn/news/486377.html

相关文章:

  • 3. 用Ruby on Rails创建一个在线商城
  • jmeter常用配置元件介绍总结之配置元件
  • SpringBoot获取请求参数
  • 【数据结构】树——顺序存储二叉树
  • Android中perform和handle方法的区别——以handleLaunchActivity与performLaunchActivity为例
  • 聊聊依赖性测试
  • C++11————线程库
  • Java 动态代理初步
  • 应用系统开发(10) 钢轨缺陷的检测系统
  • 理解 \r、\n、\r\n 和 \n\r:换行符的区别和用法
  • 【jvm】StringTable为什么要调整
  • AI 驱动低代码平台:开创智能化用户体验新纪元
  • 谈一谈QThread::CurrentThread和this->thread
  • ThriveX 博客管理系统前后端项目部署教程
  • STM32单片机设计防儿童人员误锁/滞留车内警报系统
  • 可认证数据资产合约标准协议(CMIDA-1)意见征集
  • Cyberchef配合Wireshark提取并解析HTTP/TLS流量数据包中的文件
  • MYSQL- 展示事件信息 EVENTS 语句(十八)
  • 如何在react中使用react-monaco-editor渲染出一个编辑器
  • 【Linux】Github 仓库克隆速度慢/无法克隆的一种解决方法,利用 Gitee 克隆 Github 仓库
  • HarmonyOS Next 组件或页面之间的所有通信(传参)方法总结
  • 单片机学习笔记 1. 点亮一个LED灯
  • Poetry 完整安装与项目环境搭建指南
  • 【MyBatis源码】MapperRegistry详解
  • Java项目实战II基于Spring Boot的工作流程管理系统设计与实现(开发文档+数据库+源码)
  • flink StreamGraph 构造flink任务
  • 【51单片机】LCD1602液晶显示屏
  • 理解 HTML5 Canvas 中逻辑像素与物理像素的关系
  • 7.揭秘C语言输入输出内幕:printf与scanf的深度剖析
  • 数据分析-系统认识数据分析