本片文章將從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
