Участь у розробці
Технічний стек та деяка історія
Тут ми маємо огляд інструментарію та часу виконання цього проекту
Для всього проекту ми маємо
- 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 буде оновлено і це буде видалено.
Структура проекту
Дивіться для детального дизайну. Він має охоплювати 90% випадків!
Сприяти розробці
Наполегливо рекомендуємо використовувати VSCode для відкриття проекту.
Початок роботи
Клонувати
Клонуйте проект з прапором підмодуля --recurse-submodules
.
git clone --recurse-submodules https://github.com/Voxelum/x-minecraft-launcher
Якщо ви забули додати прапорець --recurse-submodules
, вам потрібно ініціалізувати та оновити підмодуль git вручну.
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.
Останньою командою, яку ви введете, буде
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
Відкрийте один термінал
# Start a dev server for UI
npm run dev:renderer
Відкрийте інший термінал
# Start watching main process code
npm run dev:main
«Гаряча» зміна коду
Ви внесли зміни до коду і хочете оновити їх у запущеному екземплярі лаунчера.
Для процесу в браузері
Vite забезпечує гаряче перезавантаження, він повинен оновлюватися автоматично. Якщо щось пішло не так, ви можете оновити браузер за допомогою Ctrl+R
.
Для процесу Main
Якщо ви використовуєте VSCode для запуску лаунчера, після зміни коду ви можете натиснути кнопку перезавантаження у відладчику VSCode.
Якщо ви не використовуєте VSCode для запуску, то Electron має закритись і перезавантажитись автоматично.
Знайдено помилку у ядрі панелі запуску
Ядро панелі запуску знаходиться у окремому проекті, написаному на TypeScript.
Будь ласка, відкрийте проблему там, якщо ви виявите будь-яку проблему, пов'язану з ним.
Налагоджувач VSCode
Проект містить конфіги відладчика VSCode. Ви можете додати точку зупинки на лінії і налагоджувати. Наразі метод відладчика VSCode підтримує налагодження лише на основному процесі.
(Ви можете використовувати Chrome Devtools для процесу рендерингу в будь-якому випадку)
Тепер у нас є два варіанти:
- Electron: Main (launch)
- 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 команд для збірки
По-перше, вам потрібно зібрати код інтерфейсу:
pnpm build:renderer
Якщо код під xmcl-keystone-ui
не змінився, вам не потрібно збирати його знову.
Після цього ви можете зібрати Electron зі щойно створеним фронтендом:
pnpm build