{"repo":"KanCraft/kanColleWidget","free":true,"listed":false,"github":"https://github.com/KanCraft/kanColleWidget","clone":"git clone https://github.com/KanCraft/kanColleWidget.git","description":"小さい画面で艦これしたいよ。通知とかもほしいよ 🐳","language":"TypeScript","stars":228,"topics":["javascript","react","chomex"],"license":null,"category":"deployment-docker-iac","readme_excerpt":"艦これウィジェット インストール ベータ版 公開版 開発 コンテナ開発フロー Dev Container (VS Code / Codespaces) 1. VS Code に Dev Containers 拡張を入れ、このリポジトリを開く。 2. コマンドパレットで Dev Containers: Reopen in Container を実行する。 3. .devcontainer/devcontainer.json がルートの Dockerfile をビルドし、 kcw-node-modules ボリュームを自動設定する。 4. コンテナ内のターミナルで pnpm start を実行すると vite build --watch が走り、 src/ の変更が dist/ に即時反映される。 5. chrome://extensions 側で「パッケージ化されていない拡張機能を読み込む」 から dist/ を指定し、更新時は再読み込みするだけでよい。 6. 依存追加を行った場合はコンテナ内で pnpm install --frozen-lockfile を 実行し、 kcw-node-modules にキャッシュされることを確認する。 Docker 単体での利用 Dev Container を使わない場合も、ルートの Dockerfile で同じ環境を 構築できる。 - Makefile からまとめて起動したい場合は make dev を利用すると上記と 同じコマンド列が実行される。 - pnpm start は tsc && pnpm run copy-tesseract && vite build --watch を 実行し、 dist/ を監視更新する。Chrome 拡張には監視済み dist/ を 読み込ませるだけでよい。 - ファイル監視を安定させるため CHOKIDAR USEPOLLING=1 等を既定で有効化 済み。変更が伝播しない場合は pnpm start -- --poll 100 を試す。 - kcw-node-modules ボリュームを削除したい場合は docker volume rm kcw-node-modules を実行する。 リリースフロー 概要 開発は main 1本 で行います（ develop ブランチは廃止）。リリースは GitHub に完結し、 バージョンの位置 で配信先が決まる、という1つのルールに集約されています。 - ベータ版 … main の package.json の version が 直近のタグより先行している間 、 毎朝 06:30 JST の定期実行で、直近24時間に main へ commit があれば自動で BETA リスティングへ 公開される（「main は常にベータ版として生きている」）。緊急時は workflow dispatch で 手動公開もできる。 - プロダクション版 … GitHub Release を作成（= タグを打つ） と、その版が PROD リスティングへ公開される。 バージョンの単一の真実源は package.json の version だけです。 manifest.json はビルド成果物として毎回生成されるため、手で編集しません（テンプレートは src/public/manifest.template.json ）。 1. ベータ版を出す（開発サイクルの開始） - 毎朝 06:30 JST に、直近24時間で main に commit（ / ","default_branch":null,"files":null,"tree":[],"storefront":"/r/KanCraft","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/KanCraft/kanColleWidget/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}