Earth Monorepo — GISモジュール群のモノレポ

Library

概要

earth_monorepoは、Cesiumを基盤にしたGIS関連モジュール群をTypeScriptで管理するモノレポプロジェクトです。パッケージは@anstecスコープ配下に整理され、coreとなるearthモジュールに加え、機能拡張用のearth-plugins、React用のearth-react、Vue用のearth-vueを提供します。ビルド設定やLint/フォーマット、デコレータ系の共通ユーティリティはそれぞれのディレクトリで分離され、再利用可能なRollup設定や開発補助ツールにより一貫した開発体験を実現します。pnpmで依存管理を行い、ワークスペースでの開発を想定した構成です。

GitHub

リポジトリの統計情報

  • スター数: 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字)。

リポジトリ情報:

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

...