Содействие проекту
Технический стек и некоторая предыстория
Здесь представлен обзор инструментария и времени выполнения этого проекта.
Для всего проекта у нас есть
- 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 будет обновлен, и это будет удалено.
Структура проекта
Смотрите для детального дизайна. Он должен охватывать 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 КЛЮЧ
Start Launcher
Затем вы можете запустить программу запуска
Для VSCode
Перейдите в раздел Запуск и отладка
, используйте профиль 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
.
Для основного процесса
Если вы используете 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
.
См. этот gist:
feat: (новая возможность для пользователя, не новая возможность для скрипта сборки)
fix: (исправление ошибки для пользователя, а не исправление для скрипта сборки)
docs: (изменения в документации)
style: (форматирование, пропущенные точки с запятой и т.д.; без изменения производственного кода)
refactor: (рефакторинг производственного кода, например, переименование переменной)
test: (добавление недостающих тестов, рефакторинг тестов; без изменения производственного кода)
chore: (обновление задач grunt и т. д.; без изменения производственного кода)
Ваш коммит будет отклонен, если вы не будете следовать этим правилам.
Как собирать
Текущая программа запуска требует выполнения 2 команд для сборки
Во-первых, вам нужно собрать код фронтенда:
pnpm build:renderer
Если только код под xmcl-keystone-ui
не изменился, вам не нужно собирать его снова.
Затем вы можете собрать Electron в связке с фронтендом, который вы только что собрали:
pnpm build