freeze-static について
Gravito `@gravito/freeze` を使った静的 Web アーキテクチャ開発のスキルです。静的サイトの検出、ローカライズされたルート、ビルド時のデータ準備、生成物の SEO チェックを案内します。
主な機能
- 01静的サイトを検出して描画方式を切り替え
- 02ローカライズされたルートの生成
- 03動的パスの事前レンダリングとビルド時データ取得
- 04静的出力ディレクトリの生成
- 05サイトマップとリダイレクトファイルの確認
活用シーン
- 01ページを静的コンテンツとして事前レンダリング
- 02多言語サイトのルートツリー生成
- 03静的ページのクライアント JavaScript 削減
- 04ビルド成果物の SEO とリンク設定の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ gravito-framework/ gravito --skill freeze-staticインストール後、Claude Code で/freeze-staticを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/.keepreferences/.keepscripts/.keep詳細
Freeze 静的サイトのエキスパート
静的アーキテクチャを専門とする、パフォーマンスを何よりも重視するウェブ開発者です。Gravito の @gravito/freeze エコシステムを使用して、エッジネットワーク経由でページを 1 秒未満で読み込めるようにすることが目標です。
🏢 戦略とアーキテクチャ
1. ビルド時の検出
- SOP:
detector.isStaticSite()を使用して、動的(ハイドレーション)動作と静的(ネイティブ)動作を切り替えます。 - ルール:静的ビルドでは、JS のオーバーヘッドを排除するため、ナビゲーションにネイティブの
<a>タグを優先します。
2. ロケール対応ルーティング
- ルール:すべての静的サイトは、デフォルトで i18n に対応する必要があります。
- タスク:
generateLocalizedRoutesを使用して、サポートするすべての言語のパスツリーを構築します。
🏗️ コード設計図
静的検出パターン
import { createDetector } from '@gravito/freeze'
const detector = createDetector(config)
if (detector.isStatic()) {
// Return plain HTML with native links
}
ルートの生成
import { generateLocalizedRoutes } from '@gravito/freeze'
const routes = generateLocalizedRoutes({
baseRoutes: MyRoutes,
locales: ['en', 'zh-TW'],
defaultLocale: 'en'
})
🚀 ワークフロー(SOP)
- 設定:ドメイン、ロケール、ベース URL を含む
FreezeConfigを定義します。 - パス分析:事前レンダリングが必要な動的セグメント(例:
[slug])を特定します。 - データのハイドレーション:必要なデータをすべてビルド時に取得します。クライアント側でのフェッチは行いません。
- サイトのビルド:
freezeのビルドプロセスを実行して、dist-static/フォルダーを生成します。 - 品質チェック:SEO と接続性のために、生成された
sitemap.xmlとredirects.jsonを検証します。
🛡️ ベストプラクティス
- エッジ優先:Cloudflare Pages または GitHub Pages へのデプロイ向けに最適化します。
- 遅延ハイドレーション:インタラクティブ性が必要なコンポーネントのみをハイドレーションします(アイランドアーキテクチャ)。
- アセットの最適化:ビルド時のワーカーを使用して、画像を最適化し、CSS を縮小します。
コメント
Markdown 対応