コンテンツにスキップ

@hiyocord/wrangler-configurer

Wrangler設定ファイルを生成するためのコマンドラインユーティリティです。

概要

wrangler.config.tsを読み込み、環境変数とマージしてwrangler.jsoncを出力します。Service BindingのIDなどの環境固有の設定をバージョン管理から分離することで、利用者の環境に手を加えずデプロイできるようにします。

主な機能

  • TypeScriptで型安全な設定ファイルの記述
  • 環境変数による設定のオーバーライド
  • Wrangler設定の自動生成

インストール

npm install -D @hiyocord/wrangler-configurer

使い方

プロジェクトルートにwrangler.config.tsを配置します:

// wrangler.config.ts
import type { WranglerConfigurerOptions } from '@hiyocord/wrangler-configurer'

export default {
  params: {
    name: "my-worker",
    main: "./src/index.ts",
    compatibility_date: "2025-10-08",
    compatibility_flags: ["nodejs_compat"],
    observability: {
      enabled: true,
      logs: {
        enabled: true,
        head_sampling_rate: 1,
        persist: true,
        invocation_logs: true
      }
    }
  }
} satisfies WranglerConfigurerOptions

wrangler-configurerコマンドでwrangler.jsoncを生成します:

npx wrangler-configurer

環境変数によるオーバーライド

環境変数VITE_WRANGLER_ARGSにJSONを指定することで、設定を動的に変更できます:

export VITE_WRANGLER_ARGS='{"kv_namespaces":[{"binding":"KV","id":"your-kv-id"}]}'
npx wrangler-configurer

使用例(Hiyocord Nexus)

// wrangler.config.ts
import type { WranglerConfigurerOptions } from '@hiyocord/wrangler-configurer'

export default {
  params: {
    name: "hiyocord-nexus",
    main: "./src/index.ts",
    compatibility_date: "2025-10-08",
    compatibility_flags: ["nodejs_compat"],
    preview_urls: true,
    workers_dev: false,
    observability: {
      enabled: true
    },
    upload_source_maps: true,
    kv_namespaces: [{
      binding: "KV",
      id: process.env["HIYOCORD_NEXUS_KV_ID"]
    }]
  }
} satisfies WranglerConfigurerOptions

環境変数でKVネームスペースIDを指定:

export HIYOCORD_NEXUS_KV_ID="your-kv-namespace-id"
npx wrangler-configurer
wrangler deploy

利点

  • バージョン管理からの分離: Service BindingのIDなどの環境固有の設定をGitにコミットする必要がない
  • 型安全性: TypeScriptで設定を記述できるため、コンパイル時にエラーを検出
  • 再利用性: テンプレートリポジトリとして配布し、利用者が自分の環境にそのままデプロイ可能

パッケージ情報