Newer
Older
PixelPaintWar / docs / ENV_02_環境構築手順書.txt
========================================================================
Pixel Paint War - 環境構築ガイド (Environment Setup Guide)
========================================================================

1. 事前準備 (Prerequisites)
------------------------------------------------------------------------

1-0. 目的
    本ドキュメントは,「Pixel Paint War」のMonorepo構成による開発環境を構築
    するための手順書である.
    ※ 本プロジェクトは Node.js v20 LTS 以上を必須とする.

1-1. 必須ツールのインストール
    開発を開始する前に,以下のツールをインストールしバージョンを確認する.

    1. Node.js (v20.x LTS)
        ・Nodesource リポジトリを使用してインストールする.
        # リポジトリのセットアップとインストール
        $ curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
        $ sudo apt-get install -y nodejs

        ・確認コマンド:
        $ node -v  # v20.x.x と表示されること

    2. pnpm (Package Manager)
        ・Node.js 標準の npm ではなく pnpm を使用する.
        ・Corepack (Node.js同梱) を有効化してインストールする.
        $ sudo corepack enable
        $ corepack prepare pnpm@latest --activate

        ・確認コマンド:
        $ pnpm -v


2. プロジェクト初期化 (Project Initialization)
------------------------------------------------------------------------

2-1. ディレクトリ作成と初期化
    1. プロジェクトルートの作成
        任意の場所にプロジェクトフォルダを作成し,移動する.
        $ mkdir SkillSemiWebGame
        $ cd SkillSemiWebGame

    2. Gitの初期化
        $ git init

    3. pnpm の初期化
        $ pnpm init

2-2. ワークスペース設定 (Monorepo Setup)
    ルートディレクトリに以下の設定ファイルを作成し,モノレポ構成を定義する.

    1. pnpm-workspace.yaml
        ・packages/shared を共通ライブラリとし,apps 配下にアプリを配置する.
        ・内容:
            packages:
              - 'apps/*'
              - 'packages/*'

    2. .npmrc
        ・依存関係解決の設定を行う (shamefully-hoist=true 推奨).
        ・内容:
            shamefully-hoist=true

2-3. ディレクトリ構造の構築
    以下の構成になるようにディレクトリを作成する.

    root/
    ├── apps/
    │   ├── client/           # フロントエンド (Browser)
    │   └── server/           # バックエンド (Node.js)
    └── packages/
        └── shared/           # 共通ロジック (Shared Library)

    ・作成コマンド例:
        $ mkdir -p apps/client apps/server packages/shared


3. パッケージ・ライブラリ導入 (Dependency Installation)
------------------------------------------------------------------------

3-1. 共通ライブラリ (packages/shared)
    共通ロジック用のパッケージ設定を行う.

    1. 初期化とビルドツール導入
        $ cd packages/shared
        $ pnpm init
        $ pnpm add -D typescript tsup

    2. 設定ファイルの調整 (package.json)
        ・name: "@repo/shared" と命名する(推奨).
        ・main: "./dist/index.js", types: "./dist/index.d.ts" を指定する.
        ・scripts: "build": "tsup src/index.ts --format cjs,esm --dts" を追加する.

3-2. フロントエンド (apps/client)
    Vite プロジェクトとして初期化を行う.

    1. プロジェクト作成
        $ cd ../../apps/client
        $ pnpm create vite . --template preact-ts
        ※ 実行中に表示される選択肢には以下のように回答すること:
        ? Use rolldown-vite (Experimental)? » No
        ? Install with pnpm and start now? » No

    2. 依存ライブラリのインストール
        ・Pixi.js (描画エンジン) を追加する.
        ・共通ライブラリへの依存を追加する.
        $ pnpm add pixi.js
        $ pnpm add @repo/shared --workspace

3-3. バックエンド (apps/server)
    Node.js アプリケーションとして初期化を行う.

    1. 初期化
        $ cd ../../apps/server
        $ pnpm init

    2. 依存ライブラリのインストール
        ・ws (WebSocket) を追加する.
        ・開発用ツール (tsx, typescript, @types/node, @types/ws) を追加する.
        ・共通ライブラリへの依存を追加する.
        $ pnpm add ws
        $ pnpm add -D tsx typescript @types/node @types/ws
        $ pnpm add @repo/shared --workspace


4. 開発ツール設定 (Dev Tools Setup)
------------------------------------------------------------------------

4-1. VS Code 拡張機能
    推奨エディタである VS Code に以下の拡張機能をインストールする.

    ■ 必須拡張機能
        ・ESLint
        ・Prettier - Code formatter
        ・EditorConfig for VS Code

    ■ 推奨拡張機能
        ・Hex Editor (バイナリパケットのデバッグ用・Microsoft公式)
        ・GitHub Copilot

4-2. AI アシスタント設定
    開発効率化のため,以下のAIツールのアカウント設定を確認する.

    1. Gemini Pro
        ・学校提供ライセンスでのアクセス権限を確認する.

    2. GitHub Copilot Pro
        ・Student Developer Pack が有効化されているか確認する.
        ・VS Code 右下のアイコンからログイン状態を確認する.


5. 動作確認 (Verification)
------------------------------------------------------------------------

5-1. ビルド確認
    ルートディレクトリから全体の依存関係をインストールし,ビルドを試行する.
    
    $ cd ../../
    $ pnpm install
    $ pnpm --filter @repo/shared build

    ※ shared のビルドが成功することを確認する.

5-2. 開発サーバー起動
    それぞれのディレクトリで開発サーバーが起動することを確認する.
    
    ・Client:
        $ pnpm --filter client dev
    
    ・Server:
        $ pnpm --filter server dev (package.json にスクリプト設定後)