better-env について
TypeScript プロジェクトの環境変数管理を扱うスキルです。型付き設定モジュールとサーバー用・公開用変数の分離に加え、CLI による検証、ローカルファイルの同期、ホスト環境の変数操作を説明します。
主な機能
- 01configSchema による型付き設定の定義
- 02Next.js の規則に沿った環境ファイルの検証
- 03ローカルファイルとホスト環境の同期
- 04リモート環境変数の管理
- 05Vercel、Netlify、Railway、Cloudflare アダプター
活用シーン
- 01起動やビルド前に不足変数を検出
- 02機能単位で設定を整理
- 03ローカル dotenv ファイルをデプロイ環境と同期
- 04CI でリモート変数を一括更新
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ andrelandgraf/ fullstackrecipes --skill better-envインストール後、Claude Code で/better-envを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/cli.mdconfig-schema.mdconfig.mdenv-validation.mdruntime.mdvercel-adapter.md詳細
リポジトリで better-env を使用する
型安全な環境設定モジュール
TypeScript アプリケーションで、完全な型安全性と明確なサーバー/パブリックの境界を保ちながら環境変数を管理するには、このベストプラクティスに従ってください。
better-env は、型付き環境モジュールを定義するための configSchema をエクスポートしており、機能ごとの config.ts ファイル(例:src/lib/auth/config.ts や src/lib/database/config.ts)に配置することを推奨しています。
詳細はこちらをご覧ください。
references/config-schema.md
現在の環境にすべての環境変数が存在することを検証する
環境変数の検証を早い段階で実行し、dev、build、デプロイの手順に進む前に、未設定または無効な値があればすぐにエラーにしてください。
better-env validate --environment <name> は、Next.js のセマンティクスに従って .env* ファイルを読み込み、src/lib/*/config.ts モジュールを検出し、configSchema モジュールで宣言されたすべての変数をチェックします。
dotenv ファイルに、設定モジュールで参照されないキーが意図的に含まれている場合は、better-env.ts に環境ごとの抑制設定を追加してください。
environments.<env>.ignoreUnused: string[]
これらの設定は、validate の実行時に、選択したローカル環境でのみ適用されます。
アダプターのデフォルト設定は自動的にマージされます。Vercel の場合、VERCEL_OIDC_TOKEN は development、preview、production でデフォルトで無視されます。
詳細はこちらをご覧ください。
references/env-validation.md
ローカルファイルとホスト型プロバイダー間のランタイム同期を設定する
ランタイム設定を使うと、安全なデフォルトを維持しながら、ローカルの dotenv ターゲットをプロバイダーの環境に合わせられます。
defineBetterEnv(...) とアダプター(vercelAdapter、netlifyAdapter、railwayAdapter、または cloudflareAdapter)を使って better-env.ts を作成し、環境マッピング、env ファイルのターゲット、gitignore の動作を定義してください。
詳細はこちらをご覧ください。
references/config.mdreferences/runtime.md
日常的な環境操作には CLI を使用する
CLI を使うと、初期化、同期、検証、リモート変数の管理を一貫したワークフローで行えるため、ローカル開発や CI 自動化に適しています。
リポジトリに合ったコマンドランナーを選んでください。
- npm/pnpm ベースのリポジトリでは、
npxを使用してください(例:package-lock.jsonやpnpm-lock.yamlなどのロックファイルがあり、npm/pnpmでスクリプトを実行する場合)。 - Bun ベースのリポジトリでは、
bunxを使用してください(例:bun.lockがあり、bunでスクリプトを実行する場合)。 - コマンドは、プロジェクトで既に使用されているパッケージマネージャー/ランタイムの規約に合わせてください。リポジトリですでに使われている場合を除き、複数のランナーを混在させないでください。
リポジトリでの推奨フロー:
better-env initを一度実行して、アダプターの前提条件を確認します。better-env pull --environment <name>を実行して、ローカルの env ファイルを同期します。- アプリケーションの起動/ビルド前に
better-env validate --environment <name>を実行します。 - リモート環境変数を変更するには、
add、upsert、update、delete、loadを使用します。
コマンドの動作は、意図に合わせて選んでください。
- 冪等性が必要な自動化やスクリプトには
upsertを使用します。 - 重複するキーがある場合にエラーにするには
addを使用します。 - キーが存在しない場合にエラーにするには
updateを使用します。 - リモートキーを削除するには
deleteを使用します。 - dotenv ファイルから一括で更新するには
loadを使用します。
詳細はこちらをご覧ください。
references/cli.mdreferences/vercel-adapter.md