• Electron和vue3集成(推荐仅用于开发)


    本篇我们仅实现Electron和vue3通过先运行起vue3项目,再将vue3的url地址交由Electron打开的方案,仅由Electron在vue3项目上套一层壳来达到脱离本机浏览器运行目的

    1、参考快速上手 | Vue.js搭建起vue3初始项目

    1. npm install -g vue
    2. npm install -g @vue/cli-service
    3. npm create vue@latest
    4. Project name: 项目名称
    5. 以下选项我选了Yes
    6. Add TypeScript
    7. Add JSX Support
    8. Add Vue Router for Single Page Application development
    9. Add Pinia for state management
    10. cd 项目目录

    2、参考快速入门 | Electron,在vue项目里添加Electron

    1. npm install -g electron
    2. npm install -g @electron-forge/cli
    3. npx electron-forge import

    在项目目录下执行npm init,按Electron的要求修改一下package.json

    1. npm init
    2. package name: 项目名称
    3. version: 版本
    4. entry point: 改为main.js
    5. author: 程序作者

    3、项目根目录下编辑一个Electron的入口文件main.js

    1. const { app, BrowserWindow } = require('electron')
    2. const path = require('path')
    3. function createWindow () {
    4. const win = new BrowserWindow({
    5. width: 800,
    6. height: 600,
    7. webPreferences: {
    8. preload: path.join(__dirname, 'preload.js')
    9. }
    10. })
    11. //win.loadFile('index.html')
    12. win.loadURL('http://127.0.0.1:5173/') //载入vue访问地址
    13. win.maximize() //窗口最大化
    14. win.setMenu(null) //清除顶部菜单
    15. }
    16. app.whenReady().then(() => {
    17. createWindow()
    18. app.on('activate', () => {
    19. if (BrowserWindow.getAllWindows().length === 0) {
    20. createWindow()
    21. }
    22. })
    23. })
    24. app.on('window-all-closed', () => {
    25. if (process.platform !== 'darwin') {
    26. app.quit()
    27. }
    28. })

    4、项目根目录下编辑一个preload.js

    1. window.addEventListener('DOMContentLoaded', () => {
    2. const replaceText = (selector, text) => {
    3. const element = document.getElementById(selector)
    4. if (element) element.innerText = text
    5. }
    6. for (const type of ['chrome', 'node', 'electron']) {
    7. replaceText(`${type}-version`, process.versions[type])
    8. }
    9. })

    5、为了使vue和electron正常运行,需要先运行vue,使得其url可以正常访问,然后再开启electron去加载url

    此处需要安装两个库:

    • concurrently:阻塞运行多个命令,-k参数用来清除其它已经存在或者挂掉的进程
    • wait-on:等待资源,此处用来等待url可访问
    npm install -S concurrently wait-on

    接着修改package.json,scripts里修改dev命令,vite后添加host、port参数指定主机名和端口;新增两条命令,其中tcp:127.0.0.1:5173指定监听的端口,就是前面vue运行的端口

    1. "scripts": {
    2. "dev": "vite --host 127.0.0.1 --port 5173",
    3. "electron": "wait-on tcp:127.0.0.1:5173 && npm run start",
    4. "serve": "concurrently -k \"npm run dev\" \"npm run electron\""
    5. },

    6、现在来运行整个项目

    npm run serve

    界面出现了,ok

  • 相关阅读:
    【原创】MQTT开发笔记(二)QtMqtt编译及使用
    Kubernetes(K8S) 配置管理-ConfigMap 介绍
    【ViT 微调时关于position embedding如何插值(interpolate)的详解】
    基于springboot实现校友社交平台管理系统项目【项目源码+论文说明】计算机毕业设计
    排序:归并(Merge)排序算法分析
    《大数据之路:阿里巴巴大数据实践》-第3篇 数据管理篇 -第14章 存储和成本管理
    EFLK日志收集
    为什么Python是数据科学家的首选语言
    一起来学Kotlin:概念:11. Kotlin this 的使用
    Linux 启动流程及相关知识
  • 原文地址:https://blog.csdn.net/ownfire/article/details/132779017