Doppler Nuxtモジュール
Made with 💚 by 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.config.tsのmodulesセクションにnuxt-dopplerを追加します
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にはプロジェクト => 構成の階層があります。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
}
有効
boolean - デフォルト: true
モジュールを有効/無効にするだけです。これは、特定の環境でモジュールを無効にしたい場合に便利です。デフォルトはtrueです。
only
string[] - オプション
これは、Doppler APIから取得するDopplerシークレットの文字列配列です。これが設定されている場合、これらのシークレットのみが取得され、runtimeConfigオブジェクトにマッピングされます。これが設定されていない場合、すべてのシークレットが取得されますが、runtimeConfigオブジェクトにマッピングできるシークレットのみがマッピングされます。
exclude
string[] - オプション
これは、runtimeConfigオブジェクトへのマッピングから除外するDopplerシークレットの文字列配列です。特定のDopplerシークレットのみを使用し、残りを通常どおり環境変数から取得したい場合に便利です。
debug
boolean - デフォルト: false
これによりデバッグモードが有効になります。Doppler APIから取得されたDopplerシークレットがログ出力されます。これはデバッグに役立ちます。
さらに読む
このモジュールは、提供されたserviceTokenを使用してDoppler APIから指定されたDopplerプロジェクト/設定のシークレットを取得することで動作します。その後、runtimeConfigオブジェクトを深くループし、取得されたDopplerシークレットをランタイム構成オブジェクトにマッピングし、プレーン文字列として設定します。これは、Nuxtがプロセス環境変数に対して内部的に行うことと同じです。
これはすべてビルド時に行われるため、ランタイム時に環境変数を公開する必要はありません。
これがビルド時に行われるため、ビルドプロセス/CIはDopplerのserviceTokenにアクセスできる必要があります。ビルド時にこのサービス・トークンを環境変数を通して公開することをお勧めします。これは、たとえばGitHub Actionsのアクションシークレットで行うことができます。これにより、ビルドパイプラインでこの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