首先我们创建一个react应用
npx create-react-app ping cd ping
接着我们添加electron到我们的项目
yarn add electron electron-builder --dev yarn add electron-is-dev yarn add concurrently --dev yarn add wait-on --dev yarn add cross-env --dev
接着我们配置一下package.json文件
{ "name": "ping", "version": "0.1.0", "private": true, "main": "main.js", "homepage": "./", "author": { "name": "liu" }, "dependencies": { "electron-is-dev": "^2.0.0" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject", "electron-dist": "electron-builder", "dev": "concurrently \"wait-on http://localhost:3000 && electron .\" \"cross-env BROWSER=none yarn start\" ", "dist": "react-scripts build && electron-builder" }, "build": { "productName": "ping", "copyright": "Copyright © 2021 ${author}", "extends": null, "files": [ "build/**/*", "main.js" ] }, "eslintConfig": { "extends": [ "react-app", "react-app/jest" ] }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] }, "devDependencies": { "@testing-library/jest-dom": "^5.16.1", "@testing-library/react": "^12.1.2", "@testing-library/user-event": "^13.5.0", "concurrently": "^6.5.0", "cross-env": "^7.0.3", "electron": "^16.0.5", "electron-builder": "^22.14.5", "react": "^17.0.2", "react-dom": "^17.0.2", "react-scripts": "5.0.0", "wait-on": "^6.0.0", "web-vitals": "^2.1.2" } }
在项目根目录下新建一个main.js文件
const { app, BrowserWindow } = require('electron'); const path = require('path'); const isDev = require('electron-is-dev'); let mainWindow; const createWindow = () => { mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { preload: path.join(__dirname, 'preload.js') } }); mainWindow.loadURL(isDev ? 'http://localhost:3000' : `file://${path.join(__dirname, './build/index.html')}`); mainWindow.on('closed', () => mainWindow = null); }; app.whenReady().then(() => { createWindow(); });
如果要运行项目
yarn dev
打包项目
yarn dist
在dist目录下的exe就是安装程序

发表回复