uni-app通过Electron打包桌面应用
修改manifest.json应用配置

前端打包
- 点击发行,选择网站-PC Web或手机H5(仅适用于uni-app)(H)
- 包路径unpackage/dist/build/web
Electron配置
const {app, BrowserWindow} = require('electron')
const path = require('path')
const url = require('url')
let win
function createWindow () {
const args = process.argv.slice(1);
let deviceId = '';
let screenId = '';
args.forEach((arg, index) => {
if (arg === '--deviceid') {
deviceId = args[index + 1];
}
if (arg === '--screenid') {
screenId = args[index + 1];
}
});
win = new BrowserWindow({
width: 800,
height: 600,
fullscreen: true,
frame: false,
autoHideMenuBar: true,
})
const localUrl = url.format({
pathname: path.join(__dirname, 'index.html'),
protocol: 'file:',
slashes: true,
hash: `/?deviceid=${deviceId}&screenid=${screenId}`
});
win.loadURL(localUrl);
win.on('closed', () => {
win = null
})
}
app.on('ready', createWindow)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (win === null) {
createWindow()
}
})
{
"name": "xx应用",
"version": "2.0",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"electron": "electron .",
"start": "electron .",
"build:win": "electron-packager ./ xx应用 --plantform=win32 --arch=x64 --out xx应用 --overwrite --icon=icon.ico",
"build:mac-x64": "electron-packager ./ xx应用 --platform=darwin --arch=x64 --out xx应用 --overwrite --icon=icon.icns",
"build:mac-universal": "electron-packager ./ xx应用 --platform=darwin --arch=universal --out xx应用 --overwrite --icon=icon.icns",
"build:linux-x64": "electron-packager ./ xx应用 --platform=linux --arch=x64 --out xx应用 --overwrite --no-prune --ignore=/node_modules --icon=icon.png",
"build:linux-arm64": "electron-packager ./ xx应用 --platform=linux --arch=arm64 --out zhs --overwrite --no-prune --ignore=/node_modules --icon=icon.png"
},
"author": "",
"license": "ISC"
}
npm install electron
npm install electron-packager
"devDependencies": {
"electron": "^23.3.13",
"electron-packager": "^12.2.0"
}
Electron运行和打包
npm run start
npm run build:win
npm run build:mac-x64
npm run build:mac-universal
npm run build:linux-x64
npm run build:linux-arm64