Saltar al contenido

Crear un instalador de Windows para una app Electron

Empaqueta tu app Electron con Electron Packager o Forge y convierte la carpeta resultante en un Setup.exe con asistente, accesos directos y desinstalador, sin configurar electron-builder.

Actualizado el 31 de octubre de 2026 · 4 min de lectura

Electron te entrega una app de Windows funcional dentro de una carpeta: MyApp.exe, unas cuantas DLL, resources/app.asar y los locales. Convertir esa carpeta en un Setup.exe es un paso aparte, y las herramientas habituales (electron-builder, Squirrel, los makers de electron-forge) traen cada una su propia configuración, sus peculiaridades y sus requisitos para la máquina de compilación. Si prefieres no aprenderlas solo para obtener un instalador con asistente, este es el camino corto.

Paso 1: empaquetar la app en una carpeta

Necesitas la app empaquetada, no el proyecto de desarrollo. Cualquiera de las dos herramientas siguientes produce una carpeta lista para distribuir.

Electron Packager (un solo comando, sin archivo de configuración):

npx @electron/packager . MyApp --platform=win32 --arch=x64 --icon=build/icon.ico --overwrite

Esto crea MyApp-win32-x64/ con MyApp.exe dentro.

Electron Forge, si tu proyecto ya lo usa:

npm run package

La carpeta aparece en out/, por ejemplo out/MyApp-win32-x64/.

Ambos comandos funcionan en Windows, macOS y Linux. El parámetro --icon (o packagerConfig.icon en Forge) define el icono incrustado en MyApp.exe; guarda ese archivo .ico a mano, porque también lo usarás para el instalador.

Abre la carpeta y haz doble clic en MyApp.exe para comprobar que la app empaquetada arranca. Usa --arch=ia32 en su lugar si necesitas una compilación de 32 bits.

Paso 2: comprimir la carpeta en un zip

Comprime el contenido de MyApp-win32-x64/ (el .exe, las DLL, resources/, locales/), no el proyecto que la contiene. Todo lo que haya en el zip se instala tal cual, así que deja fuera lo que no deba distribuirse.

Paso 3: generar el instalador

  1. Sube el zip a ExeTup. Mostrará la lista de archivos y elegirá MyApp.exe como programa principal; confírmalo.
  2. Introduce el nombre de la app, la versión (la misma que en package.json), el editor y, si quieres, una licencia.
  3. Elige el ámbito de instalación. Las apps Electron suelen instalarse por usuario, lo que no requiere permisos de administrador y coincide con lo que hacen los instaladores basados en Squirrel. Elige todos los usuarios si quieres la app en Program Files para todas las cuentas del equipo.
  4. Mantén 64 bits para un paquete x64.
  5. Sube el mismo .ico para el instalador y los accesos directos, activa los accesos directos del menú Inicio y del escritorio y, si lo deseas, «ejecutar al terminar la instalación».
  6. Genera, descarga Setup.exe y pruébalo en Windows.

Particularidades de Electron

  • Tamaño. Una app Electron empaquetada ocupa entre 150 y 250 MB sin comprimir. El instalador usa compresión LZMA sólida, que normalmente la reduce a entre 60 y 90 MB. Consulta el límite de subida en la sección de precios antes de comprimir; lo define el sitio.
  • Actualizaciones automáticas. Este instalador no incluye un canal de actualizaciones. Si usas electron-updater o el mecanismo de actualización de Squirrel, mantén esa vía; esta guía está pensada para apps que publican cada versión nueva como un instalador nuevo, lo cual es más sencillo y suficiente para muchas apps.
  • Inicio con Windows. Prefiere la opción «ejecutar al iniciar sesión» del instalador en lugar de app.setLoginItemSettings cuando quieras que la decisión se tome en el momento de instalar; ambas escriben el mismo tipo de entrada Run.
  • Firma de código. Tanto el MyApp.exe empaquetado como el Setup.exe quedan sin firmar a menos que los firmes. Las descargas sin firma pueden provocar la advertencia de SmartScreen; consulta la guía sobre SmartScreen.

Comparado con el destino NSIS de electron-builder

electron-builder también puede producir un instalador NSIS, y es una buena herramienta cuando necesitas todas sus funciones: actualizaciones delta, scripts NSIS personalizados, salida MSI, hooks de firma. La contrapartida es la configuración y un entorno de compilación que mantener. ExeTup genera el mismo tipo de instalador NSIS a partir de la carpeta empaquetada, con las opciones definidas en un formulario, lo que conviene a equipos que publican de vez en cuando o que compilan en un Mac y no quieren un pipeline de Windows solo para el instalador.

Preguntas frecuentes

¿Puedo subir la carpeta del proyecto Electron en lugar de la app empaquetada?

No. El instalador envuelve la salida de Electron Packager o Forge: la carpeta que contiene MyApp.exe. El proyecto fuente, node_modules y las herramientas de desarrollo no tienen cabida ahí.

¿Qué ámbito de instalación debería usar una app Electron?

Por usuario es la opción habitual, porque se instala sin aviso de administrador en la carpeta del propio usuario. Elige todos los usuarios cuando un departamento de TI despliegue la app para todas las cuentas de un equipo.

¿Gestiona el instalador el caso de que la app esté abierta durante la desinstalación?

El desinstalador elimina los archivos que instaló. Pide a los usuarios que cierren antes la app, como con cualquier programa de Windows; un .exe en ejecución no se puede borrar hasta que termina.

¿Funciona con apps creadas con Tauri o NW.js?

Sí. Cualquier carpeta con un .exe de Windows y sus archivos se puede envolver. Tauri trae su propio empaquetador, pero la salida empaquetada normal funciona aquí de la misma manera.

Guías relacionadas