码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • React+Electron快速创建并打包成桌面应用


    一、创建react项目

    首先使用creat-react-app脚手架来创建一个react项目

    # 安装 create-react-app 命令,如果已将安装请忽略
    npm install -g create-react-app
    # 创建 react项目
    create-react-app react-electron
    # 启动项目( create-react-app 真的超级方便啊)
    cd react-electron && npm start
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    npm start之后浏览器会自动打开网址 http://localhost:3000/ ,出现react项目的页面了

    在这里插入图片描述

    二、安装Electron

    #在react-electron项目目录下
    npm install -save electron
    
    • 1
    • 2

    三、配置文件

    1.在项目根目录新建main.js

    const { app, BrowserWindow } = require("electron")
    const path = require('path')
    const url = require('url')
    
    function createWindow() {
      const win = new BrowserWindow({
        width: 800,
        height: 800,
        minWidth: 800,
        minHeight: 800
      })
      win.loadURL("http://localhost:3000/")
    }
    
    app.whenReady().then(() => {
      createWindow()
      app.on("active", () => {
        if (BrowserWindow.getAllWindows().length === 0) {
          createWindow()
        }
      })
    })
    
    app.on("window-all-closed", () => {
      if (process.platform !== "darwin") {
        app.quit()
      }
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    2.配置package.json

    添加如下两项配置:
    {
    	"main": "main.js", // 配置electron的启动文件
    	"scripts": {
    	    "electron-start": "electron ."
    	  },
      }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3.启动electron

    # 这里要打开两个窗口
    
    # 启动react项目
    npm start
    # 启动electron
    npm run electron-start
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    npm run electron-start之后会自动出现桌面应用
    请添加图片描述

    四、打包Electron桌面应用

    1. 安装 electron-packager
    npm install electron-packager -D
    
    • 1
    1. ** 配置homePage字段**
      在package.json文件中添加如下配置
    {
    	"homepage": "."
    }
    
    • 1
    • 2
    • 3
    {
    	"script": {
    		"package": "electron-packager ./build react-electron --platform=darwin --arch=x64 --electron-version 17.1.0 --overwrite"
    	}
    }
    //mac系统 --platform=darwin
    //Windows系统 --platform=win32
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    然后打包react代码,根目录会多出一个build文件夹

     npm run build
    
    • 1
    1. 将main.js和package.json两个文件复制到build文件夹下,同时修改build文件夹下的main.js
    // 加载应用----electron默认的打包入口
    win.loadURL(url.format({
      pathname: path.join(__dirname, './index.html'), // 修改这里
      protocol: 'file:',
      slashes: true
    }))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 在根目录运行打包命令
    npm run package
    
    • 1
  • 相关阅读:
    Python 何时传的是值,何时传的是引用?
    Spring Boot 的启动原理、Spring Boot 自动配置原理
    算法与数据结构 --- 线性表 --- 顺序表和链表的比较,以及线性表的应用
    《Unix 网络编程》13:守护进程和 inetd 超级服务器
    swiper在动态创建dom过程中的问题:数据从后端请求回来后加载到页面上,dom加载完发现swiper没用了
    猫头虎博主成为创作者的第1024天纪念日
    leetcode做题笔记127. 单词接龙
    PostgreSQL安装异常,服务无法启动导致创建服务器超时
    NSSCTF逆向题解
    testcontainers-java 新增对 TiDB 的支持
  • 原文地址:https://blog.csdn.net/koufulong/article/details/128080185
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号