貢献ガイド
技術スタックと背景情報
このプロジェクトのツールチェーンとランタイムの概要を紹介します
プロジェクト全体では以下を使用しています:
- Node.js >=20。コアライブラリのベース環境。
- Electron 29。ランチャーの実際のランタイム。
- pnpm。モノレポのパッケージ管理に使用。
- TypeScript。プロジェクト全体でできるだけTypeScriptを使用しています。
メインプロセス(Electron)では:
- esbuild。メインプロセスのTypeScriptをビルドするために使用しています。
レンダラー側、つまり純粋なフロントエンドでは:
- Vue。ユーザーインターフェースの構築に使用。
- Vite。ビルドシステムとして使用。
- Vuetify。コンポーネントライブラリとして使用。
- Vue Composition API。Vue 2向けのコンポジショナルAPIのブリッジ。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などのようなもPの)インストールが遅い問題の解決策
gitバッシュを開き、pnpm i
の前にregistry=https://registry.npm.taobao.org electron_mirror="https://npm.taobao.org/mirrors/electron/"
を追加します。Alibabaが提供する国内のnpmおよびElectronミラーを使用します。
最終的に入力するコマンドは
registry=https://registry.npm.taobao.org electron_mirror="https://npm.taobao.org/mirrors/electron/" pnpm i
環境変数の設定
xmcl-electron-app
の下に.env
ファイルを作成してCURSEFORGE_API_KEY
を設定する必要があります。この.env
ファイルは.gitignore
ファイルに追加されています。
注意点
CURSEFORGEのAPIキーを漏らさないでください
ランチャーを起動する
これでランチャーを実行できます
VSCode利用者向け
実行とデバッグ
セクションに移動し、Electron: Main (launch)
プロファイルを使用してelectronを起動します。(ホットキーF5)
VSCode以外の利用者向け
ターミナルを一つ開き
# UIのためにdevサーバーを開始
npm run dev:renderer
別のターミナルを開き
# メインプロセスコードの監視を開始
npm run dev:main
コードの「ホット」変更
コードを変更した場合、その変更を実行中のランチャーインスタンスに更新する方法です。
ブラウザプロセスの場合
Viteはホットリロードを提供しているので、自動的に更新されるはずです。何か問題が発生した場合は、Ctrl+R
でブラウザを更新できます。
メインプロセスの場合
VSCodeを使用してランチャーを起動している場合、コードを変更した後、VSCodeデバッガーの再読み込みボタンを押すことができます。
VSCodeを使用して起動していない場合、Electronは自動的に閉じて再読み込みします。
ランチャーコアの問題を発見した場合
ランチャーコアはTypeScriptで書かれた別プロジェクトにあります。
関連する問題を特定した場合は、そちらで問題を開いてください。
VSCodeデバッガー
プロジェクトにはVSCodeデバッガー設定が含まれています。行にブレークポイントを追加してデバッグできます。現在、VSCodeデバッガーの方法はメインプロセスのデバッグのみをサポートしています。
(レンダラープロセスにはChrome Devtoolsを使用できます)
現在、2つのオプションがあります:
- 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