zoukankan      html  css  js  c++  java
  • electron+react开发属于自己的桌面应用

    本片文章将从0到1简单介绍,electron项目的初始化,开发配置,打包配置

    项目初始化&开发配置

    1.创建一个react的项目(可以使用官方的create-react-app的脚手架创建)

    2.安装electron(注意一定是devDependencies,否则后面打包会报错)

    npm i electron -D
    

    3.写一个electron的启动文件(main.js)

    const { app, BrowserWindow } = require('electron')
    const path = require('path')
    const url = require('url')
    
    const ENV = process.env.NODE_ENV;
    
    function createWindow () {
      const win = new BrowserWindow({
         800,
        height: 600,
        webPreferences: {
          nodeIntegration: true
        }
      })
      if(ENV=='development') {  //区分开发和生产环境
        win.loadURL('http://localhost:3000/')
      }
      else {
        // 加载应用----react 打包
        win.loadURL(url.format({
          pathname: path.join(__dirname, './build/index.html'),
          protocol: 'file:',
          slashes: true
        }))
      }
      win.webContents.openDevTools()
    }
    
    app.whenReady().then(createWindow)
    
    app.on('window-all-closed', () => {
      if (process.platform !== 'darwin') {
        app.quit()
      }
    })
    
    app.on('activate', () => {
      if (BrowserWindow.getAllWindows().length === 0) {
        createWindow()
      }
    }) 

    4.配置package.json

    {
        "main": "main.js",//指定入口的文件
        "scripts":{ //配置启动脚本
              "electron-start": "electron .", //生产环境
              "electron-start:dev": "cross-env NODE_ENV=development electron ." //开发环境,这样改动代码会热更新
         }
    }
    

    5.同时启动我们的客户端和服务端进行开发即可

    //开发环境
    npm start
    npm run  electron-start:dev
    
    //生产环境
    npm run build
    npm run electron-start

    **注意**:生产环境启动会出现文件找不到的情况,是因为我们的资源在html是根路径的方式插入的(/static/js/main.629b1443.chunk.js),所以需要配置成相对路径(./static/js/main.629b1443.chunk.js),在package.json中添加homepage配置项

    {
        "homepage": ".",
    }

    项目打包

    electron-builder

    1.安装(指定版本,否则打包会出错,也安装到devDependencies)

    npm i electron-builder@21.2.0 -D
    

    2.package.json配置build

    "build": {
        "appId": "xxx.wss.app",  //随便填
        "directories": {
          "output": "dist"  //打包之后输出的目录
        },
        "win": {  //windows配置
          "target": [
            "nsis",
            "zip"
          ],
          "icon": "icon.ico"
        },
        "files": [  //打包包含的文件
          "build/**/*",  //react代码打包的output
          "main.js"  //electron的入口js
        ],
        "extends": null   //不写的话会报错
      }
    

    3.配置执行脚本

    {
      “scripts”: {
         "pack": "electron-builder"
      }
    }    
    

    4.执行打包命令

    npm run pack
    

    5.直接打开打包后的.exe文件即可

     参考文献:

    https://www.electronjs.org/docs

    https://juejin.im/post/6844903555921362952

    https://www.jianshu.com/p/15bde714e198

  • 相关阅读:
    同一个人
    11.13作业第十一次AB类
    实类化对象
    字符串数组 输入3个字符串,要求按由小到大的字母顺序输出; 输入n个学生的姓名和学号到字符串数组中,在输入一个姓名,如果班级有该生则返回其信息,否则返回本班无此人
    字符数组
    作业:例题5.7 用选择法对数组中10个整数按由小到大排序。要求使用函数的方法。
    有一个3*4的矩阵,编程求出其中最大值,以及其所在的行号和列号。
    函数重载
    冒泡数组
    裴波那契数列
  • 原文地址:https://www.cnblogs.com/longlongdan/p/13840782.html
Copyright © 2011-2022 走看看