Сборка и установщики
Пользователь не запускает npm start — ему нужна программа с ярлыком или установщик. Electron Forge собирает готовую программу (копию Electron с вашим кодом внутри) и упаковывает её в установщики для разных систем. Установщики создают отдельные модули — мейкеры (makers).
Подключение Forge к ручному проекту
Если проект создан через npm init electron-app, Forge уже настроен. В проект из урока «Первое приложение вручную» его добавляют так:
npm install --save-dev @electron-forge/cli
npx electron-forge importКоманда import установит нужные пакеты, создаст forge.config.js и заменит скрипты в package.json на electron-forge start, package и make.
Сборка программы
npm run packageВ папке out/ появится каталог вроде notes-win32-x64 с файлом notes.exe (в macOS — notes.app). Его можно запустить двойным щелчком. Код программы лежит внутри в архиве resources/app.asar.
Установщик
npm run makeКоманда сначала выполняет package, затем запускает мейкеры для текущей системы. Результат — в папке out/make/: в Windows там будет Setup.exe, в macOS — архив .zip.
Настройки
Сборку описывает файл forge.config.js:
// forge.config.js
module.exports = {
packagerConfig: {
asar: true,
icon: 'assets/icon',
},
makers: [
{ name: '@electron-forge/maker-squirrel', config: {} },
{ name: '@electron-forge/maker-zip', platforms: ['darwin'] },
{ name: '@electron-forge/maker-deb', config: {} },
],
};icon указывают без расширения: Forge возьмёт assets/icon.ico для Windows и assets/icon.icns для macOS. Название программы берётся из полей productName и version в package.json.
Мейкеры
| Мейкер | Система | Результат |
|---|---|---|
maker-squirrel | Windows | Установщик Setup.exe |
maker-zip | macOS, Windows, Linux | Архив .zip |
maker-dmg | macOS | Образ диска .dmg |
maker-deb | Debian, Ubuntu | Пакет .deb |
maker-rpm | Fedora | Пакет .rpm |
Каждый мейкер — отдельный пакет npm, например npm install --save-dev @electron-forge/maker-dmg.
Сборка для других систем
Установщик для системы обычно собирают на этой же системе: для macOS — на Mac, для Windows — на Windows. Чтобы не держать три компьютера, используют сервис непрерывной интеграции, например GitHub Actions, где задача выполняется на машинах с разными системами.
Частая ошибка
Forge кладёт в программу только пакеты из dependencies, а devDependencies отбрасывает. Если библиотеку, нужную главному процессу, установить с --save-dev, программа будет работать через npm start, но после сборки упадёт с ошибкой Cannot find module. То, что нужно во время работы программы, ставьте обычным npm install.