Pake utiliza Tauri para envolver páginas remotas, archivos HTML locales o directorios de sitios estáticos como aplicaciones de escritorio para macOS, Windows y Linux. El reto no es recordar un único comando pake URL, sino confirmar que Node, Rust y las dependencias de compilación están listos y comprobar que el inicio de sesión, las redirecciones, las descargas y el acceso a dispositivos funcionan dentro del WebView del sistema.
Dirección del proyecto:
Conclusión rápida
- Recomendado usar Node.js 22, requisito mínimo 18; Las compilaciones CLI también requieren Rust 1.85+.
- La primera compilación descargará y compilará dependencias, que son notablemente más lentas que las versiones posteriores. No juzgues erróneamente la espera como congelación.
- Deben incluirse llamadas de automatización o de agente
--json, no te bases en que los registros de lenguaje natural coincidan para juzgar el éxito. - Pake no puede eludir las restricciones del sitio web sobre WebViews incrustados, cookies de terceros, SSO o extensiones de navegador.
Revisa el entorno e instala la CLI Pake
Primero, revisa la versión:
|
|
Cuando Node esté por debajo de 18 o Rust por debajo de 1,85, actualiza primero tu entorno. Comando de instalación recomendado:
README proporciona el comando:
|
|
También puedes usar npm directamente:
|
|
Tras la instalación, debes verificar que el terminal actual encontró la versión prevista:
|
|
Si encuentras problemas de permisos durante la instalación global, puedes usarlo primeronpx pake-cli [url] [options], no utilice directamente privilegios de administrador para sobrescribir el directorio del nodo del sistema.
Primera vez que empaqueta usando una página simple pública
Empaquetar GitHub como aplicación de escritorio:
|
|
Pake escribe el artefacto en el directorio actual. La primera ejecución puede instalar Rust o componentes de la plataforma. Comprueba el código de salida y el paquete real, no solo una línea de registro success.
Los entornos automatizados recomiendan el uso de salida estructurada:
|
|
La salida estándar debe ser un JSON analizable. Las salidas no nulas, fallos en el análisis de JSON o la ausencia de ruta de producto en el JSON deberían considerarse fallos de compilación.
Iconos personalizados, ventanas y plataformas objetivo
El README ofrece un ejemplo más completo:
|
|
Presta atención a las diferencias de plataforma:
--hide-title-barSolo disponible en macOS.- En Windows/Linux usa
--hide-window-decorationspara ocultar las decoraciones nativas. --targetsSe utiliza para seleccionar DMG, AppImage, DEB, RPM o arquitectura de destino, con valores específicos disponibles según el sistema actual.- El icono puede ser un archivo local o remoto; Pake lo convertirá a formato plataforma; Si la descarga falla, utiliza el archivo local para eliminar problemas de red.
Por ejemplo, en macOS genera una aplicación .app fácil de probar:
|
|
Paquete de Linux AppImage:
|
|
No asumas que todos los paquetes de instalación de plataforma pueden generarse en un solo sistema sin configuración. Las compilaciones cross-architecture también requieren objetivos Rust y cadenas de herramientas de sistema correspondientes.
Empaquetar sitios estáticos locales
Pake puede recibir inclusiones directamenteindex.htmlDirectorio de build:
|
|
Un directorio de entrada empaqueta todo el árbol. Para un único HTML que necesite recursos adyacentes, usa --use-local-file:
|
|
El enrutamiento de hash para SPAs locales puede funcionar directamente; El enrutamiento en modo historial no es equivalente al de servidores web ordinarios; en la práctica debe probarse la actualización profunda de caminos.
Usa un archivo de configuración para builds reproducibles
Cuando hay muchos parámetros, usar la configuración JSON facilita la auditoría que copiar repetidamente comandos largos:
|
|
Empuñaduraapp.jsonIncluir control de versiones, pero no escribir cookies de inicio de sesión del sitio web, tokens ni direcciones temporales internas. Los registros de compilación deberían al menos conservar la versión Pake, la versión Node, la versión Rust, la plataforma destino y la suma de comprobación del producto.
Validar aplicaciones de escritorio, no solo verificar los paquetes de instalación
Después de instalar o abrir el producto de construcción, comprueba artículo por artículo según el uso real de la web:
- La pantalla principal carga correctamente, y los certificados y proxies no reportan errores.
- Tras iniciar sesión, reiniciar la aplicación y confirmar si la sesión se mantiene como se espera.
- Si el enlace externo se abre dentro de la aplicación o en el navegador del sistema cumple con el límite de seguridad.
- Si la carga, descarga, portapapeles y arrastrar y soltar archivos funcionan correctamente.
- Los accesos directos, el escalado de ventanas y la bandeja del sistema no entran en conflicto con la página web en sí.
Si es un sitio de videoconferencia, macOS también requiere una declaración explícita de permisos:
|
|
Estos parámetros no garantizan que el sitio web siempre permita el inicio de sesión o el acceso al dispositivo en WebView; solo añaden declaraciones de permiso apropiadas para la aplicación.
Cómo comprobar fallos de inicio de sesión, SSO y redirección
Reconstruye primero usando el modo depuración:
|
|
Abre las herramientas de desarrollo para ver la Consola y la Red. Los límites comunes incluyen:
- Los proveedores de identidad rechazan WebView embebido.
- Las cookies de terceros o el almacenamiento entre orígenes están restringidos.
- Las devoluciones de llamada OAuth saltan a otro nombre de dominio, que por defecto se asigna al navegador del sistema.
- Los sitios web dependen de extensiones de navegador o de varias pestañas.
Cuando debas mantener dominios SSO confiables dentro de la aplicación, evalúa --safe-domain:
|
|
No utilices reglas excesivamente amplias de nombres de dominio para forzar que todos los enlaces permanezcan dentro de la app. Cuando los servicios SSO rechazan explícitamente WebView, ampliar aún más el rango de navegación no puede solucionar el problema.
Diagnostica los fallos de compilación en orden
| Etapa | Fenómeno típico | Método de manejo |
|---|---|---|
| CLI no encontrado | pake: command not found |
Comprueba si el bin global npm/pnpm ha entrado en el PATH, o úsalonpx pake-cli |
| Fallo de inicialización de Rust | No encontradorustcTiempo de espera para descargar |
Instala Rust por separado, vuelve a abrir el terminal para verificar la versión |
| Dependencia de la plataforma ausente | Error de bundler, WebKitGTK o packer de Tauri | Dependencias necesarias para instalar el sistema actual; no reinstalar repetidamente pake-cli |
| Fallo en el procesamiento de iconos | Fallo en la descarga, fallo en la conversión de formato | Cambia a PNG/ICO/ICNS local y luego verifica la red por separado |
| Pantalla blanca del sitio web | Compilado con éxito pero sin contenido en tiempo de ejecución | Uso--debugComprueba compatibilidad con CSP, certificados, JS y WebView |
| Bucle de inicio de sesión | Tras iniciar sesión con éxito, volver a la entrada | Comprobar cookies, nombres de dominio de devolución de llamada y políticas de proveedor de identidad WebView |
Vuelve a una compilación mínima funcional
Al solucionar el problema, primero guarda el comando fallido y la salida de la versión, y luego vuelve a la URL pública más sencilla:
|
|
Si la muestra mínima tiene éxito, significa que la cadena de herramientas es básicamente normal, y el problema es más probable que esté en la web objetivo, el icono o parámetros adicionales. Luego añade solo una opción a la vez. Si la muestra mínima también falla, gestiona las dependencias de Nodo, Rust o plataforma.
Si ocurre regresión tras actualizar la CLI, no sobrescribas el producto antiguo. Graba la versión actual y reconstruye la misma prueba de humo en el directorio de aislamiento; Solo cuando se pueden repetir las diferencias entre versiones nuevas y antiguas se juzgan las regresiones de CLI.
Desarrollo local
Si quieres modificar el propio Pake:
|
|
Desarrollo local:
|
|
Aplicaciones en la construcción:
|
|
Desarrollar Pake en sí no es el mismo camino que usar la CLI. La recomendación oficial actual es Node.js 22 y requiere Rust 1.85+. Los usuarios habituales que solo quieren encapsular páginas web no necesitan clonar el repositorio para ejecutar estos tres comandos.
Aceptación previa al lanzamiento
Antes de publicar a otros, las siguientes comprobaciones deben realizarse en una cuenta limpia o en una máquina de prueba:
--jsonRetornos exitosos, y el camino del producto realmente existe.- La instalación, el arranque, la salida y la desinstalación funcionan con normalidad.
- El inicio de sesión, las devoluciones de llamada, la subida/descarga y el comportamiento de backlinks cumplen con las expectativas.
- No se han introducido tokens internos, cookies ni puntos de entrada de depuración en la aplicación.
- Grabar versiones de Pake, Nodo, Rust y arquitecturas objetivo.
- Conserva el paquete de instalación anterior y funcional para que pueda restaurarse cuando una nueva web o CLI se revierta.
Pake es genial para estaciones de documentos, paneles de monitorización y herramientas web fijas, pero no es lo mismo que un navegador completo. Úsalo primero--debugy una prueba mínima de humo para demostrar que el sitio web objetivo es adecuado para WebView, luego personalizar iconos, bandejas, ventanas y permisos para evitar la falsa finalización de “paquete de instalación generado con éxito, pero aplicación inutilizable.”