Skip to content

Содействие проекту

Технический стек и некоторая предыстория

Здесь представлен обзор инструментария и времени выполнения этого проекта.

Для всего проекта у нас есть

  • Node.js >=20. Базовая среда библиотек ядра.
  • Electron 29. Фактическое время выполнения программы запуска.
  • pnpm. Используется для управления пакетами monorepo.
  • TypeScript. Весь проект использует как можно больше TypeScript.

Для основного процесса (Electron) мы имеем

  • esbuild. Мы используем esbuild для сборки нашего основного процесса TypeScript.

Для рендерера, который является чистым фронтендом.

  • Vue. Используется для создания пользовательских интерфейсов.
  • Vite. Используется в качестве системы сборки.
  • Vuetify. Используется как библиотека компонентов.
  • Vue Composition API. Мост для композиционного API для Vue 2. Когда Vuetify обновится до Vue 3, Vue будет обновлен, и это будет удалено.

Структура проекта

Диаграмма

Смотрите Ask DeepWiki для детального дизайна. Он должен охватывать 90% случаев!

Вклад

Настоятельно рекомендуем использовать VSCode для открытия проекта.

Начало работы

Клон

Клонирование проекта с флагом подмодулей --recurse-submodules.

bash
git clone --recurse-submodules https://github.com/Voxelum/x-minecraft-launcher

Если вы забыли добавить флаг --recurse-submodules, вам придется инициализировать и обновлять git-подмодуль вручную.

bash
git submodule init
git submodule update

Установка

Установите проект с помощью pnpm:

pnpm install
Решение проблемы медленной установки зависимостей (например, Electron) в Китае.

Откройте свой git bash и добавьте registry=https://registry.npm.taobao.org electron_mirror=«https://npm.taobao.org/mirrors/electron/» перед pnpm i. Используйте зеркала npm и Electron, предоставленные Ali.

Последняя команда, которую вы введете, будет

bash
registry=https://registry.npm.taobao.org electron_mirror="https://npm.taobao.org/mirrors/electron/" pnpm i

Установите переменные окружения

Вы должны установить CURSEFORGE_API_KEY, создав файл .env под xmcl-electron-app. Этот файл .env добавляется в файл .gitignore.

ПРЕДУПРЕЖДЕНИЕ

НЕ ПЕРЕДАВАЙТЕ СВОЙ CURSEFORGE API КЛЮЧ

Start Launcher

Затем вы можете запустить программу запуска

Для VSCode

Перейдите в раздел Запуск и отладка, используйте профиль Electron: Main (launch) для запуска электрона. (Горячая клавиша F5)

Для не VSCode

Откройте один терминал

bash
# Start a dev server for UI
npm run dev:renderer

Откройте другой терминал

bash
# Start watching main process code
npm run dev:main

«Горячее» изменение кода

У вас есть изменения в коде, и вы хотите обновить изменения в запущенном экземпляре программы запуска.

Для процесса браузера

Vite обеспечивает горячую перезагрузку, она должна обновляться автоматически. Если что-то пошло не так, вы можете обновить браузер, нажав Ctrl+R.

Для основного процесса

Если вы используете VSCode для запуска программы запуска, после изменения кода вы можете нажать кнопку перезагрузки в отладчике VSCode.

Если вы не используете VSCode для запуска, он должен закрыть Electron и перезагрузиться автоматически.

Найдено что-то неправильное в ядре пусковой установки

Ядро пусковой установки находится в отдельном проекте, написанном на TypeScript.

Пожалуйста, откройте там вопрос, если вы обнаружите какую-либо проблему, связанную с этим.

Отладчик VSCode

Проект включает в себя конфигурации отладчика VSCode. Вы можете добавить точку останова в строке и отлаживать. В настоящее время метод отладчика VSCode поддерживает отладку только главного процесса.

(Вы можете использовать Chrome Devtools для процесса рендеринга в любом случае).

Теперь у нас есть два варианта:

  1. Electron: Main (launch)
  2. Electron: Main (attach)

Если вы используете первый вариант для запуска, он автоматически присоединит отладчик к экземпляру.

Зафиксируйте свой код

Этот проект следует обычным коммитам. Вкратце, первая строка вашего сообщения о фиксации должна быть:

commit type: commit description

Существует несколько типов фиксации: feat, fix, refactor, style, docs, chore, test.

См. этот gist:

feat: (новая возможность для пользователя, не новая возможность для скрипта сборки)

fix: (исправление ошибки для пользователя, а не исправление для скрипта сборки)

docs: (изменения в документации)

style: (форматирование, пропущенные точки с запятой и т.д.; без изменения производственного кода)

refactor: (рефакторинг производственного кода, например, переименование переменной)

test: (добавление недостающих тестов, рефакторинг тестов; без изменения производственного кода)

chore: (обновление задач grunt и т. д.; без изменения производственного кода)

Ваш коммит будет отклонен, если вы не будете следовать этим правилам.

Как собирать

Текущая программа запуска требует выполнения 2 команд для сборки

Во-первых, вам нужно собрать код фронтенда:

bash
pnpm build:renderer

Если только код под xmcl-keystone-ui не изменился, вам не нужно собирать его снова.

Затем вы можете собрать Electron в связке с фронтендом, который вы только что собрали:

bash
pnpm build