useRuntimeConfig
Acesse variáveis de configuração em tempo de execução com o composable useRuntimeConfig.
Uso
const config = useRuntimeConfig()export default defineEventHandler((event) => {
const config = useRuntimeConfig(event)
})
Definir Configuração em Tempo de Execução
O exemplo abaixo mostra como definir uma URL base de API pública e um token de API secreto que é acessível apenas no servidor.
Devemos sempre definir variáveis runtimeConfig dentro de nuxt.config.
export default defineNuxtConfig({
runtimeConfig: {
// Chaves privadas estão disponíveis apenas no servidor
apiSecret: '123',
// Chaves públicas que são expostas ao cliente
public: {
apiBase: process.env.NUXT_PUBLIC_API_BASE || '/api'
}
}
})
Variáveis que precisam ser acessíveis no servidor são adicionadas diretamente dentro de runtimeConfig. Variáveis que precisam ser acessíveis tanto no cliente quanto no servidor são definidas em runtimeConfig.public.
Acessar Configuração em Tempo de Execução
Para acessar a configuração em tempo de execução, podemos usar o composable useRuntimeConfig():
export default defineEventHandler((event) => {
const config = useRuntimeConfig(event)
// Acessar variáveis públicas
const result = await $fetch(`/test`, {
baseURL: config.public.apiBase,
headers: {
// Acessar uma variável privada (disponível apenas no servidor)
Authorization: `Bearer ${config.apiSecret}`
}
})
return result
}
Neste exemplo, como apiBase é definido dentro do namespace public, ele é universalmente acessível tanto no lado do servidor quanto no lado do cliente, enquanto apiSecret é acessível apenas no lado do servidor.
Variáveis de Ambiente
É possível atualizar os valores de configuração em tempo de execução usando um nome de variável de ambiente correspondente prefixado com NUXT_.
Usando o Arquivo .env
Podemos definir as variáveis de ambiente dentro do arquivo .env para torná-las acessíveis durante o desenvolvimento e build/generate.
NUXT_PUBLIC_API_BASE = "https://api.localhost:5555"
NUXT_API_SECRET = "123"
Qualquer variável de ambiente definida dentro do arquivo .env é acessada usando process.env no aplicativo Nuxt durante o desenvolvimento e build/generate.
No tempo de execução em produção, você deve usar variáveis de ambiente da plataforma e .env não é usado.
Namespace app
O Nuxt usa o namespace app na configuração em tempo de execução com chaves incluindo baseURL e cdnURL. Você pode personalizar seus valores em tempo de execução definindo variáveis de ambiente.
Este é um namespace reservado. Você não deve introduzir chaves adicionais dentro de app.
app.baseURL
Por padrão, o baseURL é definido como '/'.
No entanto, o baseURL pode ser atualizado em tempo de execução definindo o NUXT_APP_BASE_URL como uma variável de ambiente.
Então, você pode acessar este novo base URL usando config.app.baseURL:
export default defineNuxtPlugin((NuxtApp) => {
const config = useRuntimeConfig()
// Acessar baseURL universalmente
const baseURL = config.app.baseURL
})
app.cdnURL
Este exemplo mostra como definir uma URL de CDN personalizada e acessá-la usando useRuntimeConfig().
Você pode usar um CDN personalizado para servir ativos estáticos dentro de .output/public usando a variável de ambiente NUXT_APP_CDN_URL.
E então acessar a nova URL do CDN usando config.app.cdnURL.
export default defineEventHandler((event) => {
const config = useRuntimeConfig(event)
// Acessar cdnURL universalmente
const cdnURL = config.app.cdnURL
})
※Esta página é uma tradução não oficial da documentação oficial do Nuxt.js.
A página correspondente na documentação oficial está aqui:
https://nuxt.com/docs/3.x/api/composables/use-runtime-config