Doppler Nuxtモジュール
💚 を込めて Hiyieldによって作成されました
Doppler シークレットを Nuxt ビルドに統合して、すべての環境変数とシークレットを安全に、同期して、一元管理できます 🔒
機能
- 🚀 最小限のセットアップ
- 🔐 安全
クイックセットアップ
nuxt-doppler
依存関係をプロジェクトに追加します
# Using pnpm
pnpm add -D nuxt-doppler
# Using yarn
yarn add --dev nuxt-doppler
# Using npm
npm install --save-dev nuxt-doppler
nuxt-doppler
をnuxt.config.ts
のmodules
セクションに追加します
export default defineNuxtConfig({
modules: ['nuxt-doppler']
})
- doppler モジュールを設定します
export default defineNuxtConfig({
modules: ['nuxt-doppler'],
doppler: {
// your Doppler service token
serviceToken: process.env.DOPPLER_SERVICE_TOKEN,
// your Doppler project name
project: 'your-doppler-project',
// your Doppler config name
config: process.env.NODE_ENV === 'production' ? 'production' : 'development',
}
})
nuxt.config.ts
のruntimeConfig
に追加します。runtimeConfig
内のキーはすべて Doppler シークレットにマッピングされます。ランタイム設定についてはこちらをご覧ください。
NUXT_PUBLIC_YOUR_VAR => runtimeConfig.public.yourVar.
export default defineNuxtConfig({
runtimeConfig: {
public: {
yourVar: ''
}
},
modules: ['nuxt-doppler'],
doppler: {
// your Doppler service token
serviceToken: process.env.DOPPLER_SERVICE_TOKEN,
// your Doppler project name
project: 'your-doppler-project',
// your Doppler config name
config: process.env.NODE_ENV === 'production' ? 'production' : 'development',
}
})
これで完了です! シークレットは Nuxt で使用できるようになりました! ✨
設定
serviceToken
string
- 必須
これは、doppler プロジェクト/設定の Doppler サービストークンです。キーを生成します。環境変数を使用してこれを格納することをお勧めします。この環境変数は、nuxt アプリのビルドプロセスでのみ必要です。ランタイムプロセスには含めないでください。
project
string
- 必須
これは、シークレットにアクセスする doppler プロジェクトの名前です。
config
string
- 必須
これは、シークレットにアクセスする doppler プロジェクト内の doppler 設定の名前です。Doppler には project => config 階層があります。1 つのプロジェクトに複数の設定を含めることができます。これにより、環境ごとに異なるシークレットを持つことができます。
通常、ローカル開発/ステージング/本番環境ごとに異なる設定があります。正しい設定文字列を取得するには任意の方法を使用できますが、process.env.NODE_ENV
を使用すると、Nuxt が本番ビルドでこれを自動的に production
に設定するため、簡単に行うことができます。
doppler: {
//...
config: process.env.NODE_ENV === 'production' ? 'production' : 'development'
}
これを行う別の方法として、ビルドプロセスで ENV
環境変数を設定する方法があります。これは、本番環境に似た環境が複数ある場合に役立ちます。
ENV=staging npm run build
doppler: {
//...
config: process.env.ENV
}
enabled
boolean
- デフォルト: true
モジュールを有効/無効にするだけです。これは、特定の環境でモジュールを無効にする場合に役立ちます。デフォルトは true
です。
only
string[]
- オプション
これは、Doppler API からフェッチする Doppler シークレットの文字列配列です。これが設定されている場合、これらのシークレットのみがフェッチされ、runtimeConfig オブジェクトにマッピングされます。これが設定されていない場合、すべてのシークレットがフェッチされますが、runtimeConfig オブジェクトにマッピングできるシークレットのみがマッピングされます。
exclude
string[]
- オプション
これは、runtimeConfig オブジェクトへのマッピングから除外する Doppler シークレットの文字列配列です。これは、特定の Doppler シークレットのみを使用し、残りは通常どおり env 変数から取得する場合に役立ちます。
debug
boolean
- デフォルト: false
デバッグモードが有効になります。Doppler API からフェッチされた Doppler シークレットが出力されます。これはデバッグに役立ちます。
参考資料
このモジュールの動作方法は、指定された serviceToken
を使用して Doppler API を使用し、指定された Doppler プロジェクト/設定のシークレットをフェッチすることです。次に、runtimeConfig
オブジェクトを深くループして、フェッチされた Dopper シークレットをランタイム設定オブジェクトにマッピングし、プレーン文字列として設定します。これは、Nuxt がプロセス env 変数で内部的に行うことと同じです。
これはすべてビルド時に行われるため、実行時に env 変数を公開する必要はありません。
これはビルド時に行われるため、ビルドプロセス/ci は Doppler serviceToken
にアクセスできる必要があります。ビルド時に環境変数を介してこのサービストークンを公開することをお勧めします。これは、たとえば github アクションのアクションシークレットを使用して行うことができます。つまり、ビルドパイプラインでこの 1 つのシークレットのみを公開して維持するだけでよく、その他すべては Doppler によって管理されます。
Nuxt での runtimeConfig の動作方法は、nuxt が最初に runtimeConfig キーに一致する環境変数を探します。見つかった場合は、それを使用します。見つからない場合は、runtimeConfig オブジェクトのデフォルト値を使用します。
このモジュールは、Nuxt がこれを行った **後** に実行されます。そのため、設定した環境変数よりも優先されます。
開発
# Install dependencies
npm install
# Generate type stubs
npm run dev:prepare
# Develop with the playground
npm run dev
# Build the playground
npm run dev:build
# Run ESLint
npm run lint
# Run Vitest
npm run test
npm run test:watch
# Release new version
npm run release