8000 GitHub - jack-app/meidaisai2025D: 2025年のアイデアソンででたアイディア: タイピングゲームを作るタイピングゲームを作ります.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

2025年のアイデアソンででたアイディア: タイピングゲームを作るタイピングゲームを作ります.

Notifications You must be signed in to change notification settings

jack-app/meidaisai2025D

Repository files navigation

meidaisai2025D

2025年のアイデアソンででたアイディア: タイピングゲームを作るタイピングゲームを作ります.

プロジェクト概要

本プロジェクトは3つのnpmパッケージ(npmコマンドが使えるディレクトリ)から構成されています.

  • frontend
  • functions
  • test-client

また,npmパッケージ以外に,以下のディレクトリを含みます.

  • public

前提として,本プロジェクトはfirebaseでホスティング(世界に発信)されます. functionspublicはfirebaseとつよい関わりがあります.

functions

functionsはfirebase-functionsにデプロイされるソースコードを格納するためのnpmパッケージです. firebase-functionsは,クラウド上でプログラムを実行するサービスです.

開発者はバックエンドの開発のためにこのパッケージのソースコード(src/**)を編集します. このディレクトリに関する詳細はfunctions/README.mdを確認してください.

test-client

test-clientは一般公開されることはありません. 開発者はfunctionsパッケージで実装した機能をユーザの立場としてテストしたいときにこのパッケージを編集,利用します.

frontend

frontendはユーザの手元で実行するプログラム,およびユーザに直接配信されるコンテンツを格納を格納するためのnpmパッケージです. ただし,このパッケージ自体が直接ユーザに配信されるわけではなく,ビルドを行って,publicに配信するコンテンツ・プログラムを配置します.

開発者はフロントエンドの開発のためにこのパッケージのソースコード(src/**)を編集します. このディレクトリに関する詳細はfrontend/README.mdを確認してください.

public

publicはfirebase-hostingにデプロイされるソースコードを格納するためのディレクトリです. publicfrontend/publicは別物であることに注意してください.

publicに配置されたファイルはそのままユーザの手元に届きます. publicfrontendから自動で生成されるため,開発者がこのディレクトリを直接編集することはありません.

開発環境の立ち上げ

以下の手順を必要に応じて実行します.

  1. リポジトリを最新にする.git pull origin main

  2. フロントエンドの自動ビルドを有効化する. cd frontend && npm run build:watch

  3. バックエンドの自動ビルドを有効化する. cd functions && npm run build:watch

  4. firebaseのエミュレータを起動する. firebase emulators:start

手順2から4はlaunch_local_server.shにスクリプトとしてまとめてあります.

開発環境の用意

すべての手順を位置から順番に実行しなければならないわけではありません.たとえば,すでにリポジトリをクローンしてある場合は新たにクローンする必要はありません. かわりに,git pull origin mainを実行してローカルリポジトリ(手元の作業環境)を最新の状態に更新してください.

リポジトリの用意

  1. gitをインストールする.(詳細略)
  2. githubに公開鍵を登録する.(詳細略)
  3. リポジトリをクローンする.ターミナルを開いて,git clone git@github.com:jack-app/meidaisai2025D.gitを実行する.
  4. 自分の名前のブランチを作る.git branch <あなたの名前>
  5. 先に作ったブランチに移動する.git switch <あなたの名前>

このまま,権限が正しく設定されているか確認します.

  1. リモートリポジトリに新しく作ったブランチを反映する.git push origin <あなたの名前>

6.で失敗した場合のヒント:

  • githubへのssh-keyの登録
  • git config user.name <githubのユーザ名>およびgit config user.email <githubのメールアドレス>
  • リモートリポジトリ"meidaisai2025D"にあなたが追加されていない.

依存関係の解決

  1. npmをインストールする(すでにインストールしてある場合は不要).node.jsをインストールすれば自動でインストールされる.ここからインストール可能です.
  2. プロジェクトルートに移動する.
  3. カレントディレクトリをfunctionsにする. ターミナルを開いて,cd functions
  4. 必要なライブラリをインストールする.npm install
  5. プロジェクトルートに戻る.cd ..
  6. カレントディレクトリをtest-clientにする.cd test-client
  7. 必要なライブラリをインストールする.npm install

1.について,

  • プロジェクトルートとは,meidaisai2025D/のことです.
  • meidaisai2025DフォルダでVSCodeを開いて統合ターミナルを開くとすでにプロジェクトルートにいる状態からスタートします.
  • ファイルエクスプローラでmeidaisai2025Dフォルダをひらいて,”ここで端末を開く”をクリックしてもプロジェクトルートに居る状態でターミナルが起動します.

Javaのインストール

firebase-toolsを動作させるためにJDK(ver11以上)が必要なため,インストールします. どのようにインストールしてもよいですが,たとえばこの記事を参考にしてください.

firebase-toolsの用意

  1. npmをインストールする(すでにインストールしてある場合は不要).node.jsをインストールすれば自動でインストールされる.ここからインストール可能です.
  2. ターミナルをひらいて,npm i -g firebase-toolsfirebaseコマンドをインストールする.
  3. firebase --versionfirebaseコマンドがインストールできたことを確認する.

ここから,firebaseコマンドが正しくインストールできたかを確認します.

  1. カレントディレクトリをfunctionsにする. cd functions
  2. TS->JS.npm run build
  3. プロジェクトルートに戻る.cd ..
  4. firebaseにログインする.firebase login
  5. firebaseのエミュレータを起動する.firebase emulators:start
  6. "Issues? Report them at https://github.com/firebase/firebase-tools/issues and attach the *-debug.log files."と表示されるまで待つ.
  7. 別のターミナルを開いて,プロジェクトルートに移動する
  8. test-clientをカレントディレクトリにする.cd test-client
  9. npm testを実行する.
  10. "PASS"と表示されることを確認する.(エミュレータが正しく動作していない場合,"FAIL Tests failed."と言われます.)

以下は起動したテストやエミュレータを終了する手順です.(バツボタンでターミナルを閉じても構いません)

  1. テストの終了: テストを実行したターミナルを開きながら"Q"をおす
  2. エミュレータの終了: エミュレータを起動したターミナルを開きながら"Ctrl+C"(Macの場合はわからないです.すみません.)

デプロイ手順

mainブランチにプルリクエストを出して,@えんぴつ にデプロイを依頼してください. プルリクエストの出し方がわからない場合は @えんぴつ に連絡してください.

デプロイとは?

開発者以外が開発したアプリを利用できるようにする作業です.

デプロイ作業の内容

以下の作業は基本的には @えんぴつ が行いますが,googleアカウントをプロジェクトに登録できれば他の方もデプロイ作業を行えます. アカウントの追加が必要になった場合は @えんぴつ に連絡してください.

実際のデプロイ手順は次の通りです.

  1. firebaseにログインする.firebase login
  2. バックエンドの依存パッケージを最新にする.cd functions && npm install
  3. バックエンドをビルドする.npm run build && cd ..
  4. フロントエンドの依存パッケージを最新にする.cd frontend && npm install
  5. フロントエンドをビルドする.npm run build && cd ..
  6. デプロイするfirebase deploy

手順2以降はdeploy.shにスクリプトとしてまとめてあります.

デプロイが済んだら," https://metype-ffe25.web.app/ "に変更が反映されます. ブラウザにキャッシュが残っていて変更内容が反映されないことが往々にしてあります. その場合,キャッシュクリアを行ってください. Chromeの場合はキャッシュクリアしたいページを開きながら"Shift+F5"でできます.

Tips

  • コードを編集したら頻繁に保存してください."Ctrl+S"で保存できます.
  • VSCodeを使用している場合,"Ctrl+J"で統合ターミナル(ターミナルの一種)を開けます.
    • 統合ターミナルの右上のプラスボタンで新しくターミナルを開けます.
  • スクリプトはコマンドプロンプトから実行します.たとえば,launch_local_server.shを実行したいときは,カレントディレクトリをプロジェクトルートにして,./launch_local_server.shと入力し実行します.

参考

About

2025年のアイデアソンででたアイディア: タイピングゲームを作るタイピングゲームを作ります.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6

Languages

0