doppler
nuxt-doppler

將您的 Doppler 金鑰整合到您的 Nuxt 構建中

Doppler Nuxt 模組

由 💚 製作 Hiyield

npm versionnpm downloadsLicenseNuxt

將您的 Doppler 金鑰整合到您的 Nuxt 構建中,以在一個地方安全、同步地管理所有環境變數和金鑰 🔒

功能

  • 🚀  最小化設定
  • 🔐  安全

快速設定

  1. nuxt-doppler 依賴項新增到您的專案
# Using pnpm
pnpm add -D nuxt-doppler

# Using yarn
yarn add --dev nuxt-doppler

# Using npm
npm install --save-dev nuxt-doppler
  1. nuxt-doppler 新增到 nuxt.config.tsmodules 部分
export default defineNuxtConfig({
  modules: ['nuxt-doppler']
})
  1. 配置 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',
  }
})
  1. 將其新增到 nuxt.config.ts 中的 runtimeConfigruntimeConfig 中的任何鍵都將對映到您的 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 中使用了!✨

配置

服務令牌

string - 必填

這是您的 Doppler 服務令牌,用於 doppler 專案/配置。生成您的金鑰。建議您使用環境變數來儲存它。此環境變數僅在 Nuxt 應用程式的構建過程中需要。它不應該在執行時過程中。

專案

string - 必填

這是您要從中訪問金鑰的 doppler 專案的名稱。

config

string - 必填

這是您要從中訪問金鑰的 doppler 專案中的 doppler 配置的名稱。Doppler 具有專案 => 配置層次結構。您可以在一個專案中擁有多個配置。這允許您為不同的環境擁有不同的金鑰。

通常,您會為本地開發/暫存/生產環境設定不同的配置。您可以使用任何方法來獲取正確的配置字串,但使用 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

string[] - 可選

這是一個字串陣列,包含要從 Doppler API 獲取的 Doppler 金鑰。如果設定此項,則只獲取這些金鑰並對映到 runtimeConfig 物件。如果未設定此項,則將獲取所有金鑰,但只有可以對映到 runtimeConfig 物件的金鑰才會被對映。

exclude

string[] - 可選

這是一個字串陣列,包含要從對映到 runtimeConfig 物件中排除的 Doppler 金鑰。如果您只想使用某些 Doppler 金鑰並像往常一樣從環境變數獲取其餘金鑰,這會很有用。

除錯

boolean - 預設值:false

這將啟用除錯模式。它將記錄從 Doppler API 獲取的 Doppler 金鑰。這對於除錯很有用。

延伸閱讀

此模組的工作方式是使用 Doppler API 和提供的 serviceToken 來獲取給定 Doppler 專案/配置的金鑰。然後,它會深入遍歷您的 runtimeConfig 物件,並將任何獲取的 Doppler 金鑰對映到執行時配置物件,將它們設定為純字串。這與 Nuxt 在內部使用您的程序環境變數的方式相同。

這一切都在構建時發生,這意味著您無需在執行時公開任何環境變數。

由於這發生在構建時,您的構建過程/CI 將需要訪問 Doppler serviceToken。建議您在構建時透過環境變數公開此服務令牌。例如,可以使用 GitHub Actions 中的 Action secrets 來實現。這意味著您只需在構建管道中公開和維護這一個金鑰,其他所有內容都由 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