A propriedade env
Partilhe variáveis de ambiente entre o cliente e o servidor.
-
Tipo:
Object
O Nuxt permite você criar variáveis de ambiente do lado do cliente, e também serem partilhadas a partir do lado do servidor.
A propriedade env define variáveis de ambiente que devem estar disponível no lado do cliente. Eles podem ser atribuídos usando variáveis de ambiente do lado do servidor, com o módulo dotenv ou similares.
env com as propriedades do runtimeConfig : publicRuntimeOptions e privateRuntimeOptions.Aprenda mais com o nosso tutorial sobre o movendo do @nuxtjs/dotenv para configuração do tempo de execução .Certifique-se de ler sobre o process.env e o process.env == {} abaixo para melhor resolução de problemas.
export default {
env: {
baseUrl: process.env.BASE_URL || 'http://localhost:3000'
}
}
Isto permite você criar uma propriedade baseUrl que será equal a variável de ambiente BASE_URL do lado do servidor se estiver disponível ou definida. Se não, O baseUrl no lado do cliente será igual a 'http://localhost:3000'. A variável BASE_URL do lado do cliente é então copiada para o lado do cliente através da propriedade env dentro do ficheiro nuxt.config.js. Alternativamente, o outro valor é definido (http://localhost:3000).
Depois, Eu posso acessar minha variável baseUrl em duas maneiras:
-
Através do
process.env.baseUrl. -
Através do
context.env.baseUrl, consulte a API de contexto .
Você pode usar a propriedade env para atribuir uma chave pública por exemplo.
Para o exemplo acima, nós podemos usar ele para configurar o axios .
import axios from 'axios'
export default axios.create({
baseURL: process.env.baseUrl
})
Então, dentro da suas páginas, você pode importar o axios desse jeito: import axios from '~/plugins/axios'
Injeção automática de variáveis de ambiente
Se você definir variáveis de ambiente começando com o NUXT_ENV_ na fase de construção (por exemplo, NUXT_ENV_COOL_WORD=freezing nuxt build ou SET NUXT_ENV_COOL_WORD=freezing & nuxt build para a consola do Windows, eles serão automaticamente injetados dentro do ambiente de processo). Esteja ciente que eles irão potencialmente ter precedência sobre variáveis definidas dentro do seu ficheiro nuxt.config.js com o mesmo nome.
process.env == {}
Nota que o Nuxt usa o definePlugin do webpack para definir a variável de ambiente. Isto significa que o atual process ou process.env do Node.js não está nem disponível nem definido. Cada propriedade de env definida dentro do ficheiro nuxt.config.js é individualmente mapeado para process.env.xxxx e convertido durante a compilação.
Querendo dizer que, o console.log(process.env) imprimirá {} mas o console.log(process.env.your_var) continuará a imprimir seu valor. Quando o webpack compila o seu código, ele substitui todas instâncias de process.env.your_var com o valor que você tem definido, por exemplo: env.test = 'testing123'. Se você usar process.env.test em algum lugar do seu código, ele é de fato traduzido para 'testing123'.
antes
if (process.env.test == 'testing123')
depois
if ('testing123' == 'testing123')
A propriedade serverMiddleware
Visto que a propriedade serverMiddleware é desligada da construção principal do Nuxt, variáveis de env definidas dentro do ficheiro nuxt.config.js não estão disponíveis lá.
Clément Ollivier
Daniel Roe
Alex Hirzel
Ajeet Chaulagain
René Eschke
Sébastien Chopin
Nico Devs
Muhammad
Nazaré da Piedade
Naoki Hamada
Tom
Yann Aufray
Anthony Chu
Nuzhat Minhaz
Lucas Portet
Richard Schloss
Xanzhu
bpy
Antony Konstantinidis
Hibariya
Jose Seabra
Eze
Florian LEFEBVRE
Lucas
Julien SEIXAS
Hugo
Sylvain Marroufin
Spencer Cooley
Piotr Zatorski
Vladimir Semenov
Harry Allen
kazuya kawaguchi
Unai Mengual
Hyunseung Lee
Alexandre Chopin
pooya parsa
Nick Medrano
Mosaab Emam
Iljs Путлер Капут
Heitor Ramon Ribeiro
Nero
Yoon Han
Ikko Ashimine
FamCodings
Ayouli
F. Hinkelmann
felipesuri
Christophe Carvalho Vilas-Boas
Leoš Literák
Trizotti
Marcello Bachechi
Rodolphe
Thomas Underwood
Shek Evgeniy
Lukasz Formela
Hugo Torzuoli