Earth Monorepo — GISモジュール群のモノレポ
概要
earth_monorepoは、Cesiumを基盤にしたGIS関連モジュール群をTypeScriptで管理するモノレポプロジェクトです。パッケージは@anstecスコープ配下に整理され、coreとなるearthモジュールに加え、機能拡張用のearth-plugins、React用のearth-react、Vue用のearth-vueを提供します。ビルド設定やLint/フォーマット、デコレータ系の共通ユーティリティはそれぞれのディレクトリで分離され、再利用可能なRollup設定や開発補助ツールにより一貫した開発体験を実現します。pnpmで依存管理を行い、ワークスペースでの開発を想定した構成です。
リポジトリの統計情報
- スター数: 14
- フォーク数: 6
- ウォッチャー数: 14
- コミット数: 6
- ファイル数: 17
- メインの言語: TypeScript
主な特徴
- Cesiumベースの軽量GISコア(earth)と拡張プラグイン群を提供
- React/Vue向けのフック実装でフロントエンド統合が容易
- build-utilsで共有されるRollup設定によりビルドを一元管理
- develop-utilsに検証や関数デコレータを備え開発体験を向上
技術的なポイント
earth_monorepoはモノレポ設計により、複数パッケージ間のコード共有と一貫したビルドフローを実現しています。@anstec配下にパッケージを分割することで、責務を明確化しつつ個別のバージョン管理や配布が可能です。build-utilsに共通のRollupコンフィグを置くことで、各パッケージは個別にビルド設定を書かずに済み、成果物の出力形式(ESM/CJSなど)や外部依存の扱いを統一できます。フロントエンド統合はearth-react/earth-vueが担い、Cesiumのシーンライフサイクルや地図描画をReactフック/VueコンポジションAPI風のインターフェースでラップしている想定です。develop-utilsにはバリデータや関数型のデコレータが含まれ、型安全性の向上やランタイムチェックをサポートします。開発ワークフロー面ではpnpmによるワークスペース運用、Huskyでのコミットフック、PrettierやLint設定によるコード品質維持、cspellによるスペルチェックなどが組み合わされ、チーム開発でのミスを低減します。TypeScriptを中心とした設計は静的解析やエディタ補完の恩恵を受けやすく、モジュール分割によるツリーシェイキングや最小バンドル化も狙える点が特徴です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .cspell: dir
- .gitignore: file
- .husky: dir
- .npmrc: file
- .prettierignore: file
…他 12 ファイル
リポジトリ内の主要パッケージ(README抜粋より):
- packages/@anstec/earth: Cesiumベースのコアモジュール
- packages/@anstec/earth-plugins: Earth用プラグイン群
- packages/@anstec/earth-react: React向けフック
- packages/@anstec/earth-vue: Vue向けフック
- packages/build-utils: 共有Rollup設定
- packages/develop-utils: デコレータ(バリデータ等)
Quick start:
- pnpm install で依存をインストールし、pnpmワークスペース下で各パッケージのビルドやテストを実行します。
まとめ
モノレポ×TypeScriptでGIS機能をモジュール化し、フロントエンド統合と共通ビルドを整えた実用的な構成です(約50字)。
リポジトリ情報:
- 名前: earth_monorepo
- 説明: Monorepo for earth modules.
- スター数: 14
- 言語: TypeScript
- URL: https://github.com/KrazyPhish/earth_monorepo
- オーナー: KrazyPhish
- アバター: https://avatars.githubusercontent.com/u/52484425?v=4
READMEの抜粋:
earth_monorepo
Basic construction
packages/ sources
├─@anstec/
│ ├─earth/ -simpler module for gis based on cesium
│ ├─earth-plugins/ -plugins for earth
│ ├─earth-react/ -react hooks for earth
│ └─earth-vue/ -vue hooks for earth
├─build-utils/ -shared rollup configs
└─develop-utils/ -decorators: validator and funtional
Quick start
Install dependencies
pnpm install
Lint
Code style and quality check
...