Внести изменения

Редактировать эту документацию

Переведите документацию или откройте весь проект на своём компьютере.

Ничего не будет опубликовано, пока вы не решите отправить свою работу.

Настройка сборки

Настройте процесс сборки с помощью Task и Taskfile.yml

Обзор

Система сборки Wails — это гибкий и мощный инструмент, призванный упростить сборку приложений Wails. В ней используется Task — средство запуска задач, с помощью которого можно легко определять и выполнять задачи. Хотя система сборки v3 используется по умолчанию, Wails поддерживает подход «используйте собственные инструменты», позволяя разработчикам настраивать процесс сборки по мере необходимости.

Подробнее об использовании Task см. в официальной документации.

Task — основа системы сборки

Task — современная альтернатива Make, написанная на Go. Для определения задач и их зависимостей она использует файл YAML. В системе сборки Wails Task играет центральную роль в координации процесса сборки.

Основной файл Taskfile.yml находится в корне проекта, а задачи для отдельных платформ определены в файлах build/<platform>/Taskfile.yml. Файл общих задач Taskfile.yml в каталоге build содержит задачи, используемые на всех платформах.

  • Project Root
    • Taskfile.yml
    • build
      • windows/Taskfile.yml
      • darwin/Taskfile.yml
      • linux/Taskfile.yml
      • Taskfile.yml

Taskfile.yml

Файл Taskfile.yml в корне проекта — основная точка входа в систему сборки. В нём определены задачи и их зависимости. Ниже приведён файл Taskfile.yml по умолчанию:

yaml
version: '3'

includes:
  common: ./build/Taskfile.yml
  windows: ./build/windows/Taskfile.yml
  darwin: ./build/darwin/Taskfile.yml
  linux: ./build/linux/Taskfile.yml

vars:
  APP_NAME: "myproject"
  BIN_DIR: "bin"
  VITE_PORT: '{{.WAILS_VITE_PORT | default 9245}}'

tasks:
  build:
    summary: Builds the application
    cmds:
      - task: "{{OS}}:build"

  package:
    summary: Packages a production build of the application
    cmds:
      - task: "{{OS}}:package"

  run:
    summary: Runs the application
    cmds:
      - task: "{{OS}}:run"

  dev:
    summary: Runs the application in development mode
    cmds:
      - wails3 dev -config ./build/config.yml -port {{.VITE_PORT}}

Файлы Taskfile для отдельных платформ

У каждой платформы есть собственный Taskfile, расположенный в каталогах платформ внутри каталога build. Эти файлы определяют основные задачи для соответствующей платформы. Каждый Taskfile подключает общие задачи из файла build/Taskfile.yml.

Windows

Расположение: build/windows/Taskfile.yml

Taskfile для Windows содержит задачи для сборки, упаковки и запуска приложения в Windows. Основные возможности:

  • Сборка с необязательными флагами для рабочей версии
  • Создание файла значка .ico
  • Создание файла Windows .syso
  • Создание установщика NSIS для упаковки

Linux

Расположение: build/linux/Taskfile.yml

Taskfile для Linux содержит задачи для сборки, упаковки и запуска приложения в Linux. Основные возможности:

  • Сборка с необязательными флагами для рабочей версии
  • Создание пакетов AppImage, deb, rpm и Arch Linux
  • Создание файла .desktop для приложений Linux

macOS

Расположение: build/darwin/Taskfile.yml

Taskfile для macOS содержит задачи для сборки, упаковки и запуска приложения в macOS. Основные возможности:

  • Сборка исполняемых файлов для архитектур amd64, arm64 и universal (обе архитектуры)
  • Создание файла значка .icns
  • Создание пакета .app для распространения
  • Подпись пакетов .app в режиме ad-hoc
  • Настройка флагов сборки и переменных среды для macOS

Выполнение задач и псевдонимы команд

Команда wails3 task представляет собой встроенную версию Taskfile, которая выполняет задачи, определённые в вашем файле Taskfile.yml.

Команды wails3 build и wails3 package являются псевдонимами для wails3 task build и wails3 task package соответственно. При выполнении этих команд Wails преобразует их во внутреннем представлении в выполнение соответствующих задач:

  • wails3 build → wails3 task build
  • wails3 package → wails3 task package

Передача параметров задачам

Переменные командной строки можно передавать задачам в формате KEY=VALUE. Эти переменные перенаправляются через команды-псевдонимы:

bash
# These are equivalent:
wails3 build PLATFORM=linux CONFIG=production
wails3 task build PLATFORM=linux CONFIG=production

# Package with custom version:
wails3 package VERSION=2.0.0 OUTPUT=myapp.pkg

В файле Taskfile.yml к этим переменным можно обращаться с помощью синтаксиса шаблонов Go:

yaml
tasks:
  build:
    cmds:
      - echo "Building for {{.PLATFORM | default "darwin"}}"
      - go build -tags {{.CONFIG | default "debug"}} -o myapp

Общий процесс сборки

На всех платформах процесс сборки обычно включает следующие этапы:

  1. Приведение модулей Go в порядок
  2. Сборка фронтенда
  3. Создание значков
  4. Компиляция кода Go с флагами для соответствующей платформы
  5. Упаковка приложения (для соответствующей платформы)

Настройка процесса сборки

Хотя система сборки v3 предоставляет надёжную конфигурацию по умолчанию, её можно легко адаптировать к потребностям проекта. Изменив Taskfile.yml и Taskfile для отдельных платформ, можно:

  • Добавлять новые задачи
  • Изменять существующие задачи
  • Изменять порядок выполнения задач
  • Интегрировать другие инструменты и сценарии

Благодаря этой гибкости можно адаптировать процесс сборки к конкретным требованиям, продолжая пользоваться структурой, которую предоставляет система сборки Wails.

Режим разработки

Система сборки Wails включает мощный режим разработки, который улучшает работу разработчика благодаря автоматической перезагрузке и горячей замене модулей. Этот режим активируется командой wails3 dev.

Принцип работы

При запуске wails3 dev выполняется следующий процесс:

  1. Команда проверяет наличие доступного порта; если порт не указан, по умолчанию используется 9245.
  2. Она настраивает переменные окружения для сервера разработки фронтенда (Vite).
  3. Она запускает средство наблюдения за файлами с помощью библиотеки refresh.

Библиотека refresh отслеживает изменения файлов и запускает повторную сборку. Она использует конфигурацию, заданную в разделе с ключом dev_mode файла ./build/config.yml.
Её можно настроить так, чтобы игнорировать определённые каталоги и файлы, выбирать отслеживаемые файлы и определять действия при обнаружении изменений.
Конфигурация по умолчанию подходит для большинства случаев, но при необходимости её можно адаптировать под свои задачи.

Конфигурация

Пример её структуры:

yaml
dev_mode:
  root_path: .
  log_level: warn
  debounce: 1000
  ignore:
    dir:
      - .git
      - node_modules
      - frontend
      - bin
    file:
      - .DS_Store
      - .gitignore
      - .gitkeep
    watched_extension:
      - "*.go"
    git_ignore: true
  executes:
    - cmd: wails3 task common:install:frontend:deps
      type: once
    - cmd: wails3 task common:dev:frontend
      type: background
    - cmd: go mod tidy
      type: blocking
    - cmd: wails3 task build
      type: blocking
    - cmd: wails3 task run
      type: primary

Этот файл конфигурации позволяет:

  • Задать корневой путь для отслеживания файлов
  • Настроить уровень журналирования
  • Задать время устранения дребезга для событий изменения файлов
  • Игнорировать определённые каталоги, файлы или расширения файлов
  • Задать команды, выполняемые при изменении файлов

Настройка режима разработки

Режим разработки можно настроить, изменив эти значения в файле config.yml.

Возможные варианты настройки:

  1. Изменение отслеживаемых каталогов или файлов
  2. Изменение времени устранения дребезга для управления скоростью реакции системы на изменения
  3. Добавление или изменение выполняемых команд в соответствии с потребностями проекта

Использование браузера при разработке

Хотя Wails v2 полностью поддерживал использование браузера при разработке, это вызывало много недоразумений. Приложения, работавшие в браузере, не обязательно работали в настольном приложении, поскольку в WebView доступны не все API браузера.

При разработке пользовательского интерфейса в v3 по-прежнему можно использовать браузер, открыв в режиме разработки URL-адрес Vite по адресу http://localhost:9245. Это предоставляет доступ к мощным инструментам разработчика браузера при работе над стилями и компоновкой. Учтите, что привязки Go не будут работать в этом режиме.
Когда потребуется проверить такие функции, как привязки и события, просто переключитесь на представление настольного приложения, чтобы убедиться, что всё безупречно работает в рабочей среде.

Редактировать страницу

Последнее обновление: