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 应用程序的构建过程中需要。 它不应在运行时过程中存在。
项目
string
- 必需
这是您想要从中访问密钥的 doppler 项目的名称。
配置
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
}
已启用
boolean
- 默认值:true
只是启用/禁用模块。 如果您想在特定环境中禁用模块,这将很有用。 默认为 true
。
仅限
string[]
- 可选
这是要从 Doppler API 获取的 Doppler 密钥的字符串数组。 如果设置了此项,则只会获取这些密钥并将其映射到 runtimeConfig 对象。 如果未设置此项,则将获取所有密钥,但只会映射可以映射到 runtimeConfig 对象的密钥。
排除
string[]
- 可选
这是要从映射到 runtimeConfig 对象中排除的 Doppler 密钥的字符串数组。 如果您只想使用某些 Doppler 密钥并像往常一样从环境变量中获取其余密钥,这将很有用。
调试
boolean
- 默认值:false
这将启用调试模式。 这将记录从 Doppler API 获取的 Doppler 密钥。 这对于调试很有用。
进一步阅读
此模块的工作方式是使用提供的 serviceToken
调用 Doppler API 来获取给定 Doppler 项目/配置的密钥。 然后,它会深度遍历您的 runtimeConfig
对象,并将任何获取的 Dopper 密钥映射到运行时配置对象,将其设置为纯字符串。 这与 Nuxt 在内部使用您的进程环境变量执行的操作相同。
所有这些都发生在构建时,这意味着您不需要在运行时暴露任何环境变量。
由于这发生在构建时,因此您的构建过程/ci 将需要有权访问 Doppler serviceToken
。 建议您在构建时通过环境变量公开此服务令牌。 例如,可以使用 GitHub Actions 中的 Action secrets 来完成此操作。 这意味着您只需要在构建管道中公开和维护这一个密钥,其他一切都由 Doppler 管理。
runtimeConfig 在 Nuxt 中的工作方式是,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