Współtworzenie
Stos technologiczny i trochę informacji ogólnych
Oto przegląd narzędzi i środowiska wykonawczego tego projektu
Dla całego projektu mamy:
- Node.js >=20. Podstawowe środowisko bibliotek.
- Electron 29. Faktyczne środowisko wykonawcze launchera.
- pnpm. Używany do zarządzania pakietami w monorepo.
- TypeScript. Cały projekt używa TypeScript w jak największym stopniu.
Dla procesu głównego (Electron) mamy:
- esbuild. Używamy esbuild do budowania naszego głównego procesu TypeScript.
Dla strony renderującej, która jest czystym frontendem:
- Vue. Używany do budowania interfejsów użytkownika.
- Vite. Używany jako nasz system budowania.
- Vuetify. Używany jako biblioteka komponentów.
- Vue Composition API. Pomost dla API kompozycyjnego dla Vue 2. Gdy Vuetify zostanie zaktualizowany do Vue 3, Vue zostanie zaktualizowany i to zostanie usunięte.
Struktura projektu
Możesz zobaczyć dla szczegółowego projektu. Powinno obejmować 90% przypadków!
Jak wnieść wkład
Zdecydowanie zalecamy używanie VSCode do otwierania projektu.
Pierwsze kroki
Klonowanie
Sklonuj projekt z flagą submodułu --recurse-submodules.
git clone --recurse-submodules https://github.com/Voxelum/x-minecraft-launcherJeśli zapomnisz dodać flagę --recurse-submodules, musisz ręcznie zainicjować i zaktualizować submoduł git.
git submodule init
git submodule updateInstalacja
Zainstaluj projekt używając pnpm:
pnpm installRozwiązanie problemu wolnej instalacji zależności (takich jak Electron) w Chinach kontynentalnych
Otwórz git bash i przed pnpm i dodaj registry=https://registry.npm.taobao.org electron_mirror="https://npm.taobao.org/mirrors/electron/". Użyj krajowego lustra npm i Electron dostarczanego przez Alibabę.
Ostatecznie wprowadzone polecenie to:
registry=https://registry.npm.taobao.org electron_mirror="https://npm.taobao.org/mirrors/electron/" pnpm iUstawianie zmiennych środowiskowych
Powinieneś ustawić CURSEFORGE_API_KEY tworząc plik .env w xmcl-electron-app. Ten plik .env jest dodany do pliku .gitignore.
UWAGA
NIE UJAWNIAJ SWOJEGO KLUCZA API CURSEFORGE
Uruchamianie Launchera
Następnie możesz uruchomić launcher
Dla VSCode
Przejdź do sekcji Run and Debug, użyj profilu Electron: Main (launch) aby uruchomić electron. (Skrót klawiszowy F5)
Dla innych niż VSCode
Otwórz jeden terminal
# Uruchom serwer dev dla UI
npm run dev:rendererOtwórz inny terminal
# Uruchom obserwowanie kodu procesu głównego
npm run dev:main"Gorąca" zmiana kodu
Masz zmianę w kodzie i chcesz zaktualizować zmianę w działającej instancji launchera.
Dla procesu przeglądarki
Vite zapewnia hot reload, powinien aktualizować się automatycznie. Jeśli coś pójdzie nie tak, możesz odświeżyć przeglądarkę za pomocą Ctrl+R.
Dla procesu głównego
Jeśli używasz VSCode do uruchomienia launchera, po zmianie kodu możesz nacisnąć przycisk przeładowania w debuggerze VSCode.
Jeśli nie używasz VSCode do uruchomienia, powinien zamknąć Electron i automatycznie przeładować.
Znalazłeś coś nieprawidłowego w rdzeniu launchera
Rdzeń launchera znajduje się w oddzielnym projekcie napisanym w TypeScript.
Proszę otworzyć problem tam, jeśli zidentyfikujesz jakikolwiek problem z nim związany.
Debugger VSCode
Projekt zawiera konfiguracje debuggera VSCode. Możesz dodać punkt przerwania w linii i debugować. Obecnie metoda debuggera VSCode obsługuje tylko debugowanie w procesie głównym.
(Możesz używać Chrome DevTools dla procesu renderującego w każdym razie)
Mamy teraz dwie opcje:
- Electron: Main (launch)
- Electron: Main (attach)
Jeśli użyjesz pierwszej opcji do uruchomienia, automatycznie dołączy debugger do instancji.
Commitowanie kodu
Ten projekt przestrzega conventional commits. Krótko mówiąc, pierwsza linia twojej wiadomości commit powinna wyglądać tak:
typ commita: opis commitaDostępnych jest kilka typów commitów: feat, fix, refactor, style, docs, chore, test.
Odnosząc się do tego gista:
feat: (nowa funkcja dla użytkownika, nie nowa funkcja dla skryptu budującego)
fix: (poprawka błędu dla użytkownika, nie poprawka dla skryptu budującego)
docs: (zmiany w dokumentacji)
style: (formatowanie, brakujące średniki itp.; brak zmian w kodzie produkcyjnym)
refactor: (refaktoryzacja kodu produkcyjnego, np. zmiana nazwy zmiennej)
test: (dodawanie brakujących testów, refaktoryzacja testów; brak zmian w kodzie produkcyjnym)
chore: (aktualizacja zadań grunt itp.; brak zmian w kodzie produkcyjnym)
Twój commit zostanie odrzucony, jeśli nie będziesz przestrzegać tych zasad.
Jak budować
Obecny launcher wymaga uruchomienia 2 poleceń do zbudowania
Najpierw musisz zbudować kod frontendu:
pnpm build:rendererChyba że kod w xmcl-keystone-ui uległ zmianie, nie musisz budować tego ponownie.
Następnie możesz zbudować Electron z dołączonym właśnie zbudowanym frontendem:
pnpm build