Skip to content

Участь у розробці

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

Тут ми маємо огляд інструментарію та часу виконання цього проекту

Для всього проекту ми маємо

  • Node.js >=20. Базове середовище основних бібліотек.
  • Electron 29. Власне середовище виконання запуску.
  • pnpm. Використовується для керування пакунками монорепо.
  • TypeScript. Весь проект використовує якомога більше TypeScript.

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

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

Для рендерингової частини, яка є чистим фронтендом

  • [Vue] (https://vuejs.org). Використовується для побудови користувацьких інтерфейсів.
  • Vite. Використовується як наша система збірки.
  • [Vuetify] (https://vuetifyjs.com/). Використовується як бібліотека компонентів.
  • Vue Composition API. Міст для композиційного API для Vue 2. Після оновлення Vuetify до Vue 3, Vue буде оновлено і це буде видалено.

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

diagram

Дивіться 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

Запустити лаунчер

Після цього ви можете запустити лаунчер

Для VSCode

Перейдіть у розділ Run and Debug, використовуйте профіль 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.

Для процесу Main

Якщо ви використовуєте 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.

Довідка з [цієї статті] (https://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f42ae84c716):

feat: (нова можливість для користувача, а не нова можливість для сценарію збірки)

fix: (виправлення вади для користувача, а не виправлення для сценарію збірки)

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

style: (форматування, пропущені крапки з комою тощо; без змін у виробничому коді)

refactor: (рефакторинг виробничого коду, наприклад, перейменування змінної)

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

chore: (оновлення рутинних завдань і т.д.; без змін у виробничому коді)

Ваш комміт буде відхилено, якщо ви не дотримуєтесь цих правил.

Як збирати

Поточний лаунчер вимагає запуску 2 команд для збірки

По-перше, вам потрібно зібрати код інтерфейсу:

bash
pnpm build:renderer

Якщо код під xmcl-keystone-ui не змінився, вам не потрібно збирати його знову.

Після цього ви можете зібрати Electron зі щойно створеним фронтендом:

bash
pnpm build