Дистрибуция desktop приложений

Quasar Framework предоставляет мощный набор инструментов для создания кроссплатформенных приложений, включая desktop-приложения на базе Electron. Дистрибуция таких приложений требует понимания структуры проекта, конфигурации сборки и особенностей платформ, для которых выполняется компиляция.


Настройка проекта под desktop

Для начала необходимо убедиться, что проект инициализирован с поддержкой Electron:

quasar create my-app
cd my-app
quasar mode add electron

После добавления режима Electron структура проекта изменяется:

  • /src-electron — содержит основной процесс Electron, скрипты запуска и настройки.
  • /dist/electron — папка для финальной сборки приложения.
  • Конфигурация quasar.config.js расширяется секцией electron для управления сборкой.

Ключевые параметры конфигурации:

electron: {
  bundler: 'packager', // или 'builder'
  packager: {
    // Опции для electron-packager
    platform: 'win32', // 'darwin', 'linux'
    arch: 'x64', // 'arm64', 'ia32'
    icon: 'src/statics/icons/app-icon'
  },
  builder: {
    appId: 'com.example.myapp',
    productName: 'MyApp',
    win: {
      target: ['nsis', 'zip'],
      icon: 'src/statics/icons/app-icon.ico'
    },
    mac: {
      target: ['dmg', 'zip'],
      icon: 'src/statics/icons/app-icon.icns'
    }
  },
  nodeIntegration: true,
  extendWebpack(cfg) {
    // Дополнительные настройки Webpack для Electron
  }
}

Выбор bundler’а определяет подход к упаковке и дистрибуции:

  • electron-packager подходит для быстрого получения сборки без сложного инсталлятора.
  • electron-builder обеспечивает расширенные возможности: создание установщиков, автообновления, подписывание приложений.

Сборка приложения

Сборка desktop-приложения выполняется командой:

quasar build -m electron

При этом Quasar выполняет:

  1. Компиляцию Vue-компонентов и Quasar-пакетов.
  2. Сборку основного процесса Electron (main process) из /src-electron/main-process.
  3. Генерацию финальной структуры для выбранного bundler’а.

Для тестирования локальной сборки можно использовать:

quasar dev -m electron

Этот режим запускает приложение в режиме hot reload, что ускоряет разработку.


Настройка кроссплатформенной дистрибуции

При дистрибуции необходимо учитывать особенности целевых платформ:

  • Windows

    • Форматы: .exe (NSIS), .zip
    • Подписывание: signtool или electron-builder автоматически
    • Возможности автообновления через electron-updater
  • macOS

    • Форматы: .dmg, .zip
    • Gatekeeper требует подписывания приложений
    • Для распространения через App Store требуется специальная сборка с mas таргетом
  • Linux

    • Форматы: .AppImage, .deb, .rpm
    • Использование AppImage облегчает кросс-дистрибутивное распространение

В конфигурации quasar.config.js можно задавать платформо-специфические параметры:

builder: {
  win: { target: 'nsis' },
  mac: { target: 'dmg' },
  linux: { target: 'AppImage' }
}

Настройка автообновлений

Quasar совместно с Electron позволяет интегрировать автообновления через electron-updater:

const { autoUpdater } = require('electron-updater');

autoUpdater.checkForUpdatesAndNotify();

autoUpdater.on('update-available', () => {
  console.log('Доступно обновление');
});

autoUpdater.on('update-downloaded', () => {
  autoUpdater.quitAndInstall();
});

Важно правильно настроить сервер обновлений, который предоставляет .yml или .json файлы с информацией о версиях и бинарных файлах.


Управление ресурсами и иконками

Все статические ресурсы для desktop-приложений должны находиться в /src/statics.

  • Иконки: .ico для Windows, .icns для macOS, .png для Linux.
  • Папка statics/icons должна содержать иконки разных размеров (16x16, 32x32, 256x256 и т.д.) для корректного отображения в системных интерфейсах.

Подготовка финального инсталлятора

Windows NSIS:

quasar build -m electron -T win
  • Генерирует .exe установщик.
  • Позволяет добавлять пользовательские шаги установки через installerOptions.

macOS DMG:

quasar build -m electron -T mac
  • Создает .dmg с drag-and-drop установкой.
  • Для Gatekeeper требуется код-подписание.

Linux AppImage:

quasar build -m electron -T linux
  • Универсальный бинарник, запускаемый на большинстве дистрибутивов.
  • Дополнительно можно собирать .deb и .rpm для специфических дистрибутивов.

Рекомендации по организации сборки

  1. Поддерживать отдельные ветки для release и development.
  2. Настраивать CI/CD для автоматической сборки desktop-приложений на разных платформах.
  3. Использовать electron-builder для комплексной упаковки и возможности автообновлений.
  4. Контролировать размер сборки, исключая ненужные зависимости и DevTools.
  5. Регулярно тестировать инсталляторы на целевых платформах перед выпуском.

Quasar Framework в связке с Electron позволяет создавать полнофункциональные кроссплатформенные desktop-приложения с единым кодовым базисом, при этом обеспечивая гибкость дистрибуции, поддержку автообновлений и удобное управление ресурсами и конфигурацией.