Configuración del Empaquetado en Electron - Zarrapo/radio3-electron GitHub Wiki

📦 Configuración del Empaquetado en Electron

📌 Introducción

El empaquetado de Radio 3 Desktop se ha configurado usando Electron Builder, que permite generar un instalador para Windows con las siguientes características:

64 bits (arquitectura x64).
Instalación para todos los usuarios en Archivos de Programa (C:\Program Files\Radio 3 Desktop).
Dependencias manejadas automáticamente.
Generación de un instalador NSIS para una instalación sencilla.


📂 Configuración en package.json

📌 La configuración del empaquetado se encuentra en la sección "build" de package.json:

"build": {
  "appId": "es.ordiales.radio3",
  "productName": "Radio 3 Desktop",
  "win": {
    "icon": "assets/icons/icon.ico",
    "target": [
      {
        "target": "nsis",
        "arch": ["x64"]
      }
    ]
  },
  "nsis": {
    "oneClick": false,
    "allowElevation": true,
    "perMachine": true,
    "allowToChangeInstallationDirectory": true,
    "include": "build/installer.nsh"
  }
}

🔍 Explicación de los parámetros

Parámetro Descripción
"appId" Identificador único del paquete.
"productName" Nombre de la aplicación en el instalador.
"win" Configuración específica para Windows.
"icon" Icono que se usará en el instalador y la aplicación.
"target" Especifica el tipo de empaquetado (NSIS en este caso).
"arch" Arquitectura de 64 bits (x64).
"nsis" Configuración del instalador NSIS.
"oneClick": false Permite al usuario elegir la ubicación de instalación.
"allowElevation": true Requiere permisos de administrador en la instalación.
"perMachine": true Instala la aplicación para todos los usuarios en C:\Program Files.
"allowToChangeInstallationDirectory": true Permite cambiar la carpeta de instalación.

⚙️ Dependencias necesarias

Para poder empaquetar correctamente la aplicación, se han instalado las siguientes dependencias:

📦 Dependencias de Producción (dependencies)

Estas dependencias se incluyen en la aplicación final.

"dependencies": {
  "electron-store": "^10.0.1"
}

📌 electron-store se usa para guardar la configuración del usuario, como la última emisora seleccionada.


🛠️ Dependencias de Desarrollo (devDependencies)

Estas son necesarias solo durante el desarrollo y empaquetado.

"devDependencies": {
  "electron": "^34.0.2",
  "electron-builder": "^25.1.8",
  "cross-env": "^7.0.3"
}

📌 electron es la versión principal del framework.
📌 electron-builder se encarga de empaquetar la aplicación.
📌 cross-env garantiza compatibilidad entre diferentes entornos de desarrollo.


🏗️ Comandos para empaquetar la aplicación

🔹 1. Instalar dependencias

Antes de empaquetar, asegúrate de tener instaladas todas las dependencias:

npm install

🔹 2. Iniciar la aplicación en modo desarrollo

Para probar la aplicación antes de empaquetarla:

npm start

🔹 3. Empaquetar la aplicación

Para generar el instalador de Windows de 64 bits:

npm run build

📌 Esto generará los archivos en la carpeta dist/.


📂 Ubicación de los archivos empaquetados

Después de ejecutar npm run build, los archivos generados estarán en la carpeta dist/:

electron-radio3/
│── dist/
│   ├── Radio 3 Desktop Setup 1.2.2.exe  # Instalador NSIS
│   ├── Radio 3 Desktop-1.2.2-x64.nsis.7z  # Archivo comprimido con la instalación
│   ├── latest.yml  # Archivo de actualización (si se usa auto-update)
│   ├── ...

El instalador .exe se puede distribuir a los usuarios.


🛠️ Consideraciones Adicionales

🔹 1. Ejecutar con permisos de Administrador

📌 Debido a que la instalación se realiza en C:\Program Files, el instalador requiere permisos de administrador (allowElevation: true).

🔹 2. Agregar más arquitecturas (Ejemplo: x86 y arm64)

Si quieres soportar más arquitecturas, modifica "arch" en package.json:

"arch": ["x64", "ia32", "arm64"]

📌 Esto generará instaladores para 64-bit, 32-bit y ARM.

🔹 3. Crear una versión portátil (sin instalador)

Si prefieres un paquete sin instalador, agrega "portable" en el "target":

"target": [
  { "target": "nsis", "arch": ["x64"] },
  { "target": "portable", "arch": ["x64"] }
]

📌 Esto generará un .exe ejecutable sin instalación.