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({
    width: 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

 

posted @ 2020-10-19 16:12  祖国的小花朵  阅读(894)  评论(0编辑  收藏  举报