Migración a Deno para reducir el tamaño de compilación de aplicaciones Electron

Computing/Software4분 읽기

TuBrief 편집팀 원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다. 원본 영상: Deno Desktop puede reducir tus aplicaciones un 70% · Better Stack

Adiós a los archivos de distribución gigantes

Es ineficiente distribuir cientos de megabytes de binarios de Chromium cada vez que ejecutas una aplicación Electron. Para un desarrollador individual, el tamaño del archivo de distribución está directamente relacionado con la tasa de instalación. Deno Desktop utiliza la vista web nativa del sistema operativo. Puedes reducir una aplicación existente de 180 MB a 19 MB. No se trata solo de un cambio de tecnología, sino de aliviar el peso del entorno operativo.

Lista de control para el sprint de migración

Si quieres terminar la refactorización en 10 días, debes abandonar la estructura existente.

  • Simplifica el sistema de gestión de caché usando deno.lock en lugar de las complejas dependencias de package.json.
  • Elimina herramientas pesadas como electron-builder y asar, y configura el motor de compilación interno de Deno.
  • Elimina las capas de comunicación ipcMain e ipcRenderer y consolida el control del proceso con el método win.bind().

Al finalizar este trabajo, podrás reducir el tiempo del proceso de compilación en un 40%.

Controlar las diferencias de WebView por plataforma

Mac, Windows y Linux tienen motores web diferentes. WKWebView y WebView2 tienen resultados de renderizado distintos. Incluso la forma en que interpretan las especificaciones CSS es diferente. Especialmente el antiguo WebKitGTK de Linux rompe el diseño con frecuencia.

Para reducir la heterogeneidad entre plataformas, debes incluir scripts de corrección en tu canal de distribución (pipeline).

  1. Fuerza los márgenes predeterminados de todos los navegadores a 0 con código de reset CSS.
  2. Identifica el sistema operativo en ejecución llamando a bindings.getPlatformMetadata() durante la fase de arranque (bootstrap).
  3. En macOS, reserva un margen de 28px de altura con un div contenedor teniendo en cuenta el área del semáforo en modo sin marco (frameless), y en Windows, inyecta clases CSS según si se detecta o no el modo oscuro.

Al aplicar este enfoque, se reduce el coste de modificar la interfaz de usuario para cada sistema operativo.

Implementación de envoltorios de seguridad para llamadas a API nativas

Los canales IPC de Electron tienen accidentes de seguridad frecuentes. Deno Desktop aumenta la seguridad transmitiendo datos a través de enlaces directos (direct binding). Debes implementar tus propias clases envoltorio (wrapper) para controlar las funciones del SO de forma segura.

  • Limita estrictamente la entrada y salida de archivos al interior de la ruta de sandbox /app_sandbox_storage.
  • Incluye lógica de prevención de Path Traversal en el constructor de la clase para bloquear inmediatamente cualquier carácter .. en la ruta.
  • Al llamar a funciones del sistema como notificaciones, verifica que el recurso pasado como argumento esté en la lista blanca y utiliza solo datos codificados en base64.

Automatización de la distribución con GitHub Actions

No configures el entorno y compiles por separado para cada SO. Si utilizas la estrategia de matriz (matrix strategy) de GitHub Actions, puedes generar archivos msi para Windows, AppImage para Linux y dmg para Mac simultáneamente con un solo commit.

  • Compila Windows y Linux en el entorno ubuntu-latest, y los binarios de Mac en macos-14.
  • Añade la opción --compress=xz al comando deno desktop --target para reducir el tamaño final del archivo.
  • Prueba si los resultados de Linux funcionan realmente en un entorno virtual ejecutando xvfb-run.

Al construir este pipeline, tu ciclo de distribución será dos veces más rápido que con la compilación manual. La transición a Deno ofrece dos beneficios: binarios ligeros y seguridad mediante sandbox.

관련 영상

Deno Desktop puede reducir tus aplicaciones un 70%

Better Stack6:17

커뮤니티의 다른 글

댓글

로그인하고 댓글을 남겨 보세요.

아직 댓글이 없습니다.