yarn add -D electron-builder
{
"name": "my-app",
"version": "1.0.0",
"main": "main.js",
"scripts": {
"start": "electron .",
"build": "electron-builder",
"build:win": "electron-builder --win",
"build:mac": "electron-builder --mac",
"build:linux": "electron-builder --linux"
},
"build": {
"appId": "com.example.myapp",
"productName": "我的应用",
"directories": {
"output": "dist"
},
"files": [
"**/*",
"!node_modules/**/*",
"node_modules/electron/**/*"
],
"win": {
"target": ["nsis"],
"icon": "build/icon.ico"
},
"mac": {
"target": ["dmg"],
"icon": "build/icon.icns",
"category": "public.app-category.utilities"
},
"linux": {
"target": ["AppImage"],
"icon": "build/icon.png",
"category": "Utility"
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true,
"createDesktopShortcut": true,
"createStartMenuShortcut": true
}
}
}
yarn build
yarn build:win
yarn build:mac
yarn build:linux
yarn add electron-updater
const { autoUpdater } = require('electron-updater');
app.whenReady().then(() => {
autoUpdater.checkForUpdatesAndNotify();
autoUpdater.on('checking-for-update', () => {
console.log('检查更新...');
});
autoUpdater.on('update-available', (info) => {
console.log('发现新版本:', info.version);
});
autoUpdater.on('update-not-available', () => {
console.log('已是最新版本');
});
autoUpdater.on('download-progress', (progress) => {
console.log(`下载进度: ${progress.percent}%`);
});
autoUpdater.on('update-downloaded', () => {
console.log('更新下载完成');
autoUpdater.quitAndInstall();
});
});
{
"build": {
"publish": [
{
"provider": "github",
"owner": "your-username",
"repo": "your-repo"
}
]
}
}
{
"build": {
"mac": {
"identity": "Developer ID Application: Your Name (TEAM_ID)",
"hardenedRuntime": true,
"gatekeeperAssess": false,
"entitlements": "build/entitlements.mac.plist",
"entitlementsInherit": "build/entitlements.mac.plist"
}
}
}
{
"build": {
"win": {
"certificateFile": "cert.pfx",
"certificatePassword": "password"
}
}
}