将您的 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']
})
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 中使用了!✨
serviceTokenstring - 必填
这是您的 Doppler 服务令牌,用于 doppler 项目/配置。生成您的密钥。建议您使用环境变量来存储此令牌。此环境变量仅在 Nuxt 应用的构建过程中需要。它不应在运行时过程中使用。
projectstring - 必填
这是您要从中访问秘密的 doppler 项目的名称。
configstring - 必填
这是您要从中访问秘密的 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
}
enabledboolean - 默认值:true
仅启用/禁用模块。如果您想在特定环境中禁用模块,这将很有用。默认为 true。
onlystring[] - 可选
这是一个字符串数组,用于从 Doppler API 获取 Doppler 秘密。如果设置了此项,则只会获取这些秘密并将其映射到 runtimeConfig 对象。如果未设置此项,则会获取所有秘密,但只会映射可以映射到 runtimeConfig 对象的秘密。
excludestring[] - 可选
这是一个字符串数组,用于从映射到 runtimeConfig 对象的 Doppler 秘密中排除。如果您只想使用某些 Doppler 秘密并像往常一样从环境变量获取其余秘密,这将很有用。
调试boolean - 默认值:false
这将启用调试模式。它将记录从 Doppler API 获取的 Doppler 秘密。这对于调试很有用。
此模块的工作方式是使用提供的 serviceToken 调用 Doppler API,以获取给定 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