Se há uma coisa que a maioria dos projetos de desenvolvimento tem em comum, é que todos eles têm dados confidenciais, como informações de banco de dados, chaves de API, e outras informações de configuração necessárias. É aqui que as variáveis de ambiente entram e se tornam essenciais para qualquer projeto.
Mas o que eu faço com essas informações confidenciais, já que não posso deixá-las vagar pelo meu repositório? Siga-me, pois essas e outras perguntas serão respondidas neste artigo.
Dotenv
Este é o pacote que gerencia e organiza todas as variáveis de ambiente do nosso projeto. Para que possamos usá-lo, precisamos instalá-lo. E isso pode ser feito via yarn ou npm com o seguinte comando:
npm init -y && npm i dotenv
Depois que você instalou ele em seu projeto, nós podemos começar a usar. Inicialmente, precisamos criar um arquivo com o nome .env
. Você deve ter percebido que o nome do arquivo começa com um ponto “.” e tem quer ser assim mesmo, tá?
Uma curiosidade é que em sistemas unix todo arquivo que começa com ponto “.” é um arquivo oculto. Dentro desse arquivo, vamos colocar alguns dados:
Em seguida criaremos um arquivo index.js
e vamos tentar acessar esses dados. A forma como acessamos dados de um arquivo .env
é através do process.env.NOME_DA_VARIAVEL
.
Como podemos ver, esses dados estão indefinidos. Isso é de se esperar, afinal, nós não estamos usando o pacote que nós instalamos anteriormente. A seguir, vamos fazer uso dele e ver o quão simples ele é:
Aqui, basta adicionar esse pequeno trecho de códigorequire('dotenv').config()
em seu arquivo principal e você já terá acesso aos dados salvos no arquivo .env
e com a segurança de não expor esses dados pra ninguém no seu repositório, uma vez que o arquivo .env
é ignorado pelo Git, se ele estiver dentro do arquivo .gitignore.
Então, vamos criar um arquivo .gitignore e adicionar o nosse .env
dentro desse arquivo para que o Git passe a não observar mais esse arquivo:
Por fim, você pode fazer o seu push para o GitHub tranquilamente, pois os dados sensíveis do seu projeto estão apenas na sua máquina.
Conclusão
Em síntese, neste artigo, nós vimos que é importante que certos dados fiquem somente na nossa máquina, e aprendemos também como manipular esses dados sensíveis com a lib dotenv. Espero que tenha gostado da leitura.
Eu vou ficando por aqui, um abraço e até a próxima!