Electron-Windows-Store: интерфейс командной строки, который принимает упакованные выходные данные вашего приложения Electron, а затем преобразует их в пакет AppX. Это позволит вам отправить свое приложение Electron в Магазин Windows? Вы также можете распространять свое приложение в формате .appx
без использования Магазина Windows, позволяя пользователям просто дважды щелкнуть файл .appx
, чтобы автоматически установить его.
Чтобы установить этот инструмент командной строки, получите его непосредственно из npm:
npm install -g electron-windows-store
Затем настройте PowerShell:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Чтобы превратить приложение Electron в пакет AppX, запустите:
electron-windows-store --input-directory C:myelectronapp --output-directory C:outputmyelectronapp --package-version 1.0.0.0 --package-name myelectronapp
Этот инструмент поддерживает два метода создания пакетов AppX: либо с использованием операций копирования файлов вручную, либо с использованием контейнеров Windows. Для первого варианта требуется только Windows 10 SDK, а для второго также требуется конвертер настольных приложений.
Прежде чем запускать интерфейс командной строки Electron-Windows-Store, давайте убедимся, что у нас есть все необходимые условия. Вам понадобится:
node -v
) Упакуйте приложение с помощью электронного упаковщика (или чего-то подобного). Обязательно удалите node_modules, которые вам не нужны в конечном приложении.
Вывод должен выглядеть примерно так:
├── Ghost.exe
├── LICENSE
├── content_resources_200_percent.pak
├── node.dll
├── pdf.dll
├── resources
│ ├── app
│ └── atom.asar
├── snapshot_blob.bin
├── [... and more files]
Из PowerShell с повышенными правами (запустите его «от имени администратора») запустите electron-windows-store
с необходимыми параметрами, передав входной и выходной каталоги, имя и версию приложения. Если вы не передадите эти параметры, мы просто запросим их у вас.
electron-windows-store --input-directory C:myelectronapp --output-directory C:outputmyelectronapp --package-version 1.0.0.0 --package-name myelectronapp
Это все параметры 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)
Вы можете вызвать этот пакет напрямую. Все параметры соответствуют параметрам CLI и в равной степени необязательны. Есть одно исключение: вы можете предоставить функцию finalSay
, которая будет выполняться непосредственно перед вызовом makeappx.exe
. Это позволяет вам изменить выходную папку прямо перед тем, как мы превратим ее в пакет.
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 ( ) )
}
} )
Конвертер настольных приложений способен запускать установщик и ваше приложение во время преобразования внутри контейнера Windows. Для этого требуется установка Desktop App Converter и предъявляются более сложные требования.
appx
должно быть создано с использованием контейнера Windows, используйте метод «Копирование файлов», описанный выше.
Убедитесь, что ваш компьютер поддерживает работу с контейнерами: вам понадобится 64-разрядный (x64) процессор, аппаратная виртуализация и трансляция адресов второго уровня (SLAT). Вам также понадобится Windows 10 Enterprise Edition.
Перед первым запуском CLI вам необходимо настроить «Конвертер приложений для настольных компьютеров Windows». Это займет несколько минут, но не волнуйтесь – вам придется сделать это только один раз. Загрузите конвертер настольных приложений отсюда. Вы получите два файла: DesktopAppConverter.zip
и BaseImage-14316.wim
.
DesktopAppConverter.zip
. В PowerShell с повышенными правами (открытом с помощью «Запуск от имени администратора») убедитесь, что политика выполнения вашей системы позволяет нам запускать все, что мы намеревались запускать, вызвав Set-ExecutionPolicy bypass
.BaseImage-14316.wim
), вызвав .DesktopAppConverter.ps1 -Setup -BaseImage .BaseImage-14316.wim
. Затем запустите electron-windows-store
с флагом --container-virtualization
!
После запуска инструмент приступает к работе: он принимает ваше приложение Electron в качестве входных данных. Затем оно архивирует ваше приложение как app.zip
. Используя установщик и контейнер Windows, инструмент создает «расширенный» пакет AppX, включающий манифест приложения Windows ( AppXManifest.xml
), а также виртуальную файловую систему и виртуальный реестр внутри вашей выходной папки.
Когда у нас есть расширенные файлы AppX, инструмент использует Windows App Packager ( MakeAppx.exe
) для создания однофайлового пакета AppX из этих файлов на диске. Наконец, этот инструмент можно использовать для создания доверенного сертификата на вашем компьютере для подписи нового пакета AppX. При наличии подписанного пакета AppX интерфейс командной строки также может автоматически установить пакет на ваш компьютер.
При первом запуске этого инструмента ему необходимо знать некоторые настройки. Он спросит вас только один раз и сохранит ваши ответы в папке вашего профиля в файле .electron-windows-store
. Вы также можете указать эти значения в качестве параметра при запуске 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 \ "
}
Вы можете соединить свое приложение Electron с небольшим невидимым помощником UWP, что позволит вашему приложению Electron вызывать все API-интерфейсы WinRT. Посмотрите пример здесь.
Скомпилированный пакет AppX по-прежнему содержит исполняемый файл Win32 и поэтому не будет работать на Xbox, HoloLens или телефонах.
electron-windows-store
использует Semantic Release для автоматизации всего процесса выпуска. Чтобы объединить PR, убедитесь, что ваш PR соответствует рекомендациям по фиксации, чтобы наши роботы могли понять ваши изменения. В этом репозитории используются conventional-changelog
по умолчанию.
Лицензируется с использованием лицензии MIT (MIT); Авторские права (c) Феликс Ризеберг и корпорация Microsoft. Для получения дополнительной информации см. ЛИЦЕНЗИЯ.