Учебник по Electron.js

Сборка приложения с помощью electron-builder

Выполнить сборку приложения можно с помощью различных инструментов в число которых входят electron-builder, electron-forge, electron-packager и др. Мы воспользуемся пакетом electron-builder. Установим пакет с помощью команды:

npm install electron-builder --save-dev

В секцию scripts файла package.json добавляем скрипт:

"build-win": "electron-builder -w"

Флаг -w означает, что мы выполняем сборку под Windows. Запускаем процесс сборки с помощью команды:

C:\book\e1>npm run build-win

После сборки будет создан каталог C:\book\e1\dist внутри которого расположен файл e1 Setup 1.0.0.exe. С помощью этого файла можно установить приложение. Кроме того, в каталоге C:\book\e1\dist\win-unpacked можно найти файл e1.exe, с помощью которого можно запустить приложение.

Перед сборкой убедитесь, что в каталоге C:\book\e1 не присутствуют файлы, которые не нужны для работы приложения. Ведь все содержимое каталога C:\book\e1 будет упаковано в один файл app.asar, расположенный в каталоге C:\book\e1\dist\win-unpacked\resources.

С помощью различных опций, описание которых вы найдете в документации, можно изменить сборку по умолчанию. Например, создадим, помимо установщика, portable- и zip-версии приложения. Для этого добавляем следующий фрагмент в файл package.json:

"build": {
   "productName": "HelloWorld",
   "appId": "e1",
   "electronVersion": "12.0.5",
   "win": {
      "target": ["nsis", "portable", "zip"],
      "icon": "test.ico"
   },
   "portable": {
      "artifactName": "HelloWorld.exe"
   },
   "directories": {
      "output": "electron/dist",
      "buildResources": "build"
   }
}

В результате в каталоге C:\book\e1\electron\dist будут созданы три версии приложения: программа установки, portable-версия и zip-версия.

Аналогичным образом можно выполнить сборку приложения под MacOS и Linux. Но лучше выполнять сборку на целевой платформе, а не на Windows. Для MacOS нужно в составе команды указать флаг -m, а для Linux — флаг -l:

"build-mac": "electron-builder -m",
"build-linux": "electron-builder -l"