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 具有專案 => 設定的層級結構。您可以在一個專案中有多個設定。這讓您能夠針對不同的環境使用不同的機密。
通常您會針對本機開發/預備/生產環境使用不同的設定。您可以使用任何方法來取得正確的設定字串,但使用 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 機密,並像往常一樣從環境變數取得其餘機密,這會很有用。
debug
boolean
- 預設:false
這會啟用偵錯模式。這會記錄從 Doppler API 擷取的 Doppler 機密。這對於偵錯很有用。
延伸閱讀
此模組的運作方式是透過使用 Doppler API 和提供的 serviceToken
來擷取給定 Doppler 專案/設定的機密。然後,它會深度迴圈您的 runtimeConfig
物件,並將任何擷取的 Dopper 機密對應到執行時期設定物件,將其設定為純字串。這與 Nuxt 內部使用您的處理環境變數所做的事情相同。
這一切都發生在建置時,這表示您不需要在執行時期公開任何環境變數。
由於這一切都發生在建置時,因此您的建置流程/CI 將需要存取 Doppler serviceToken
。建議您在建置時透過環境變數公開此服務令牌。例如,可以使用 Github 動作中的 Action 機密來完成此操作。這表示您只需要在建置管道中公開和維護此一個機密,而其他一切都由 Doppler 管理。
執行時期設定在 Nuxt 中的運作方式是,Nuxt 會先尋找符合執行時期設定金鑰的環境變數。如果找到,它將使用該變數。如果找不到,它將使用執行時期設定物件中的預設值。
此模組會在 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