Em um cenário em que você está executando um aplicativo vite com modelo reactjs para um projeto e tentando buscar a variável de ambiente do arquivo .env. Como a maneira popular de buscar as variáveis de ambiente de .env é usar process.env.SOMETHING para a variável como:
SOMETHING=SECRETSAUCE
Neste ponto, o vite.config.ts ficaria assim:
import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' // https://vitejs.dev/config/ export default defineConfig({ plugins: [react()], })
Mas buscar variáveis não funciona imediatamente e há muitas maneiras de resolver o problema. Eu tentei a maioria deles e decidi seguir o caminho simples e direto.
Provavelmente com a definição acima e a lógica de busca padrão com process.env.*, você teria recebido o erro Uncaught ReferenceError: global não está definido.
Encontro muitas referências no stackoverflow e fico confuso.
A correção do erro é definir global na configuração conforme abaixo.
import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' // https://vitejs.dev/config/ export default defineConfig({ plugins: [react()], define: { global: {}, }, })
Agora, isso provavelmente levaria a outro erro mais comum Uncaught ReferenceError: o processo não está definido.
Novamente, existem muitas soluções na web e algumas estão desatualizadas. Acho que o mais relevante e fácil de implementar é importar loadEnv da biblioteca vite e construir a lógica personalizada conforme abaixo.
import { defineConfig, loadEnv } from 'vite' import react from '@vitejs/plugin-react' // https://vitejs.dev/config/ export default defineConfig(({ mode }) => { const env = loadEnv(mode, process.cwd(), ''); return { define: { global: {}, 'process.env': env }, plugins: [react()], } })E a mágica acontece imediatamente!!
Além disso, não precisamos usar a dependência dotenv, pois a busca de variável de ambiente no código com process.env.* funciona bem sem ela.
Boa codificação!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3