Solución:
Intenta usar electron-builder -p --win
. construirá el listo para la producción .exe
. Lo hice con [email protected]
para la compilación publicable, necesitará el proveedor de publicación en su package.json
archivo, considere el ejemplo dado.
"build": {
"appId": "com.trinityinfosystem.electron.exchange.stream",
"productName": "Accurate",
"copyright": "Copyright © 2018 Trinity InfoSystem",
"mac": {
"category": "public.app-category.utilities",
"icon": "assets/icon.icns",
"target": [
"zip",
"dmg"
],
"publish": [
"github"
]
},
"win": {
"publisherName": "Trinity InfoSystem",
"publish": [
"github"
],
"target": [
"nsis"
]
},
"linux": {
"target": [
"AppImage",
"tar.gz"
]
},
"dmg": {
"background": "assets/background.png",
"icon": "assets/icon.icns",
"title": "Accurate Installer"
},
"nsis": {
"oneClick": false,
"perMachine": false,
"allowToChangeInstallationDirectory": true,
"installerIcon": "assets/icon.ico",
"installerSidebar": "assets/sidebar.bmp",
"uninstallerSidebar": "assets/sidebar.bmp",
"license": "assets/agreement.html",
"createDesktopShortcut": true,
"createStartMenuShortcut": true
},
"publish": [
{
"provider": "github",
"owner": "vkiranmaniya",
"repo": "accurate",
"vPrefixedTagName": true,
"private": true,
"releaseType": "draft"
}
]
},
Agregue la configuración de pulido dada a su package.json como propiedad raíz. Necesitará el token de acceso personal de Github (aquí está el Doc) para exportar mientras ejecuta una compilación.
Puede exportar el token como env
variable de main.js
como se indica,
process.env.GH_TOKEN = 'YOUR_PERSONAL_ACCESS_TOKEN_HERE';
Si desea configurar AutoUpdate usando GitHub, puede usar el módulo dado y llamar checkForUpdates()
método from main.js
const electron = require("electron");
const updater = require("electron-updater");
const autoUpdater = updater.autoUpdater;
autoUpdater.on('checking-for-update', function () {
sendStatusToWindow('Checking for update...');
});
autoUpdater.on('update-available', function (info) {
sendStatusToWindow('Update available.');
});
autoUpdater.on('update-not-available', function (info) {
sendStatusToWindow('Update not available.');
});
autoUpdater.on('error', function (err) {
sendStatusToWindow('Error in auto-updater.');
});
autoUpdater.on('download-progress', function (progressObj) {
let log_message = "Download speed: " + progressObj.bytesPerSecond;
log_message = log_message + ' - Downloaded ' + parseInt(progressObj.percent) + '%';
log_message = log_message + ' (' + progressObj.transferred + "https://foroayuda.es/" + progressObj.total + ')';
sendStatusToWindow(log_message);
});
autoUpdater.on('update-downloaded', function (info) {
sendStatusToWindow('Update downloaded; will install in 1 seconds');
});
autoUpdater.on('update-downloaded', function (info) {
setTimeout(function () {
autoUpdater.quitAndInstall();
}, 1000);
});
function checkForUpdates(){
const data = {
'provider': 'github',
'owner': 'vkiranmaniya',
'repo': 'exchange',
'token': 'YOUR_PERSONAL_TOKEN_HERE'
};
autoUpdater.setFeedURL(data);
autoUpdater.checkForUpdates();
}
function sendStatusToWindow(message) {
console.log(message);
}
module.exports = {
checkForUpdates,
}
Ahora puedes ejecutar el comando electron-build -p --win
para crear un archivo .exe independiente actualizable automáticamente. Usar --mac
o --linux
para apuntar a una plataforma específica para la construcción.
sí, es (ahora) posible. Elija cualquiera de los módulos para generar un solo archivo exe: electron-builder, electron-forge o windows-installer.
No estoy seguro de si hay una solución más nueva, pero puede usar BoxedApp. Sin embargo, tuvo que comprarla, pero puede buscar una versión gratuita.
También puede usar WinRAR, su proyecto se empaquetará en un solo archivo ejecutable creando un archivo SFX. Aquí hay un video sobre cómo hacer una aplicación portátil usando WinRAR.
CONTRAS: el lanzamiento de la aplicación llevará más tiempo.
NOTA: Primero debe empaquetar su proyecto antes de usar cualquiera de los métodos anteriores.
PD: Probado solo en Windows.
Espero que esto ayude.