Electron-Windows-Store: una CLI que toma la salida empaquetada de su aplicación Electron y luego la convierte en un paquete AppX. ¿Esto le permite enviar su aplicación Electron a la Tienda Windows? También puede distribuir su aplicación como .appx
sin usar la Tienda Windows, lo que permite a los usuarios simplemente hacer doble clic en su .appx
para instalarla automáticamente.
Para instalar esta herramienta de línea de comandos, consíguela directamente desde npm:
npm install -g electron-windows-store
Luego, configura tu PowerShell:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Para convertir una aplicación de Electron en un paquete AppX, ejecute:
electron-windows-store --input-directory C:myelectronapp --output-directory C:outputmyelectronapp --package-version 1.0.0.0 --package-name myelectronapp
Esta herramienta admite dos métodos para crear paquetes AppX: mediante operaciones de copia de archivos manuales o mediante contenedores de Windows. La primera opción requiere solo el SDK de Windows 10, mientras que la segunda opción también requiere Desktop App Converter.
Antes de ejecutar la CLI de Electron-Windows-Store, asegurémonos de tener todos los requisitos previos implementados. Necesitarás:
node -v
) Empaquete la aplicación usando electron-packager (o algo similar). Asegúrese de eliminar los node_modules que no necesita en su aplicación final.
La salida debería verse más o menos así:
├── Ghost.exe
├── LICENSE
├── content_resources_200_percent.pak
├── node.dll
├── pdf.dll
├── resources
│ ├── app
│ └── atom.asar
├── snapshot_blob.bin
├── [... and more files]
Desde un PowerShell elevado (ejecútelo "como administrador") , ejecute electron-windows-store
con los parámetros requeridos, pasando los directorios de entrada y salida, el nombre y la versión de la aplicación. Si no pasa estos parámetros, simplemente se los pediremos.
electron-windows-store --input-directory C:myelectronapp --output-directory C:outputmyelectronapp --package-version 1.0.0.0 --package-name myelectronapp
Todas estas son opciones para la CLI:
-h, --help output usage information
-V, --version output the version number
-c, --container-virtualization Create package using Windows Container virtualization
-b, --windows-build Display Windows Build information
-i, --input-directory <path> Directory containing your application
-o, --output-directory <path> Output directory for the appx
-p, --package-version <version> Version of the app package
-n, --package-name <name> Name of the app package
--package-display-name <displayName> Display name of the package
--package-description <description> Description of the package
--package-background-color <color> Background color for the app icon (example: #464646)
-e, --package-executable <executablePath> Path to the package executable
-a, --assets <assetsPath> Path to the visual assets for the appx
-m, --manifest <manifestPath> Path to a manifest, if you want to be overwritten
-d, --deploy <true|false> Should the app be deployed after creation?
--identity-name <name> Name for identity
--publisher <publisher> Publisher to use (example: CN=developmentca)
--publisher-display-name <publisherDisplayName> Publisher display name to use
--make-pri <true|false> Use makepri.exe (you don't need to unless you know you do)
--windows-kit <windows-kit> Path to the Windows Kit bin folder
--dev-cert <dev-cert> Path to the developer certificate to use
--cert-pass <cert-pass> Password to use when signing the application (only necessary if a p12 certication is used)
--desktop-converter <desktop-converter> Path to the desktop converter tools
--expanded-base-image <base-image> Path to the expanded base image
--makeappx-params <params> Additional parameters for Make-AppXPackage (example: --makeappx-params "/l","/d")
--signtool-params <params> Additional parameters for signtool.exe (example: --makeappx-params "/l","/d")
--create-config-params <params> Additional parameters for makepri.exe "createconfig" (example: --create-config-params "/l","/d")')
--create-pri-params <params> Additional parameters for makepri.exe "new" (example: --create-pri-params "/l","/d")')
--verbose <true|false> Enable debugging (similar to setting a DEBUG=electron-windows-store environment variable)
Puede llamar a este paquete directamente. Todas las opciones corresponden a las opciones de CLI y son igualmente opcionales. Hay una excepción: puede proporcionar una función finalSay
, que se ejecutará justo antes de que se llame makeappx.exe
. Esto le permite modificar la carpeta de salida justo antes de convertirla en un paquete.
const convertToWindowsStore = require ( 'electron-windows-store' )
convertToWindowsStore ( {
containerVirtualization : false ,
inputDirectory : 'C:\input\' ,
outputDirectory : 'C:\output\' ,
packageVersion : '1.0.0.0' ,
packageName : 'Ghost' ,
packageDisplayName : 'Ghost Desktop' ,
packageDescription : 'Ghost for Desktops' ,
packageExecutable : 'app/Ghost.exe' ,
assets : 'C:\assets\' ,
manifest : 'C:\AppXManifest.xml' ,
deploy : false ,
publisher : 'CN=developmentca' ,
windowsKit : 'C:\windowskit' ,
devCert : 'C:\devcert.pfx' ,
certPass : 'abcd' ,
desktopConverter : 'C:\desktop-converter-tools' ,
expandedBaseImage : 'C:\base-image.wim' ,
makeappxParams : [ '/l' ] ,
signtoolParams : [ '/p' ] ,
makePri : true ,
createConfigParams : [ '/a' ] ,
createPriParams : [ '/b' ] ,
protocol : "ghost-app" ,
finalSay : function ( ) {
return new Promise ( ( resolve , reject ) => resolve ( ) )
}
} )
Desktop App Converter es capaz de ejecutar un instalador y su aplicación durante la conversión dentro de un contenedor de Windows. Esto requiere la instalación de Desktop App Converter y tiene requisitos más avanzados.
appx
se cree usando un contenedor de Windows, use el método de "Copia de archivos" descrito anteriormente.
Asegúrese de que su computadora sea capaz de ejecutar contenedores: necesitará un procesador de 64 bits (x64), virtualización asistida por hardware y traducción de direcciones de segundo nivel (SLAT). También necesitará Windows 10 Enterprise Edition.
Antes de ejecutar la CLI por primera vez, deberá configurar el "Convertidor de aplicaciones de escritorio de Windows". Esto llevará unos minutos, pero no te preocupes, sólo tienes que hacerlo una vez. Descargue el convertidor de aplicaciones de escritorio desde aquí. Recibirá dos archivos: DesktopAppConverter.zip
y BaseImage-14316.wim
.
DesktopAppConverter.zip
. Desde un PowerShell elevado (abierto con "ejecutar como administrador", asegúrese de que la política de ejecución de su sistema nos permita ejecutar todo lo que pretendíamos ejecutar llamando Set-ExecutionPolicy bypass
.BaseImage-14316.wim
), llamando .DesktopAppConverter.ps1 -Setup -BaseImage .BaseImage-14316.wim
. Luego, ejecute electron-windows-store
con el indicador --container-virtualization
.
Una vez ejecutada, la herramienta se pone a trabajar: acepta su aplicación Electron como entrada. Luego, archiva su aplicación como app.zip
. Utilizando un instalador y un contenedor de Windows, la herramienta crea un paquete AppX "ampliado", que incluye el manifiesto de aplicación de Windows ( AppXManifest.xml
), así como el sistema de archivos virtual y el registro virtual dentro de su carpeta de salida.
Una vez que tenemos los archivos AppX expandidos, la herramienta utiliza Windows App Packager ( MakeAppx.exe
) para crear un paquete AppX de un solo archivo a partir de esos archivos en el disco. Finalmente, la herramienta se puede utilizar para crear un certificado confiable en su computadora para firmar el nuevo paquete AppX. Con el paquete AppX firmado, la CLI también puede instalar automáticamente el paquete en su máquina.
La primera vez que ejecuta esta herramienta, necesita conocer algunas configuraciones. Le preguntará solo una vez y almacenará sus respuestas en su carpeta de perfil en un archivo .electron-windows-store
. También puede proporcionar estos valores como parámetro al ejecutar la CLI.
{
"publisher" : " CN=developmentca " ,
"windowsKit" : " C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ x64 " ,
"devCert" : " C: \ Tools \ DesktopConverter \ Certs \ devcert.pfx " ,
"desktopConverter" : " C: \ Tools \ DesktopConverter " ,
"expandedBaseImage" : " C: \ ProgramData \ Microsoft \ Windows \ Images \ BaseImage-14316 \ "
}
Puede emparejar su aplicación Electron con un pequeño complemento invisible para UWP, lo que le permite llamar a todas las API de WinRT. Mira un ejemplo aquí.
El paquete AppX compilado todavía contiene un ejecutable win32 y, por lo tanto, no se ejecutará en Xbox, HoloLens ni en teléfonos.
electron-windows-store
utiliza Semantic Release para automatizar todo el proceso de lanzamiento. Para fusionar un PR, asegúrese de que su PR siga las pautas de confirmación para que nuestros robots puedan comprender su cambio. Este repositorio utiliza las reglas predeterminadas conventional-changelog
.
Con licencia utilizando la Licencia MIT (MIT); Copyright (c) Felix Rieseberg y Microsoft Corporation. Para obtener más información, consulte LICENCIA.