首先我们创建一个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就是安装程序

发表回复