Gérer vos configurations et secrets avec dotenv

J’ai longtemps cherché un package qui me permettrait de gérer au mieux mes stockages de configuration dans mon environnement sans que ce soit dépendant du code. Et bingo, j’ai trouvé le package dotenv. Il réponds parfaitement à tous mes besoins que ce soit pour des projets personnels ou professionnels.

En effet, comme le mentionne la documentation, dotenv est un module sans dépendance qui charge nos variables à partir du fichier .env. Et en plus, il gère le stockage de la configuration séparément du code comme je le voulais en se basant sur la méthodologie de l’ application Twelve-Factor . Tout simplement parfait.

Installation du package dotenv

Dans votre terminal faites :

npm i dotenv 

Création du fichier .env

A la racine de votre projet, créer un fichier .env. Nous allons en créer un fictif avec quelques variables de base pour un projet.

PORT=3001
HOSTNAME=127.0.0.1

MONGO_DATABASE_NAME=dbtest
MONGO_URL=mongodb+srv://dbtest:test@mongodb.net/myFirstDatabase

A partir d’ici nous pouvons accéder à nos variable en faisant : process.env.PORT ou encore process.env.HOSTNAME.

Un peu lourd non ? Personnellement je trouve que ça l’est et pas très clean. Améliorons tout cela.

Fichier de configuration

Créons un fichier config.js. Il appelera notre package dotenv et stockera toutes nos variables de configuration, permettant l’autocomplétion par la suite :

const dotenv = require('dotenv');

dotenv.config();

export default {
  port: process.env.PORT,
  hostname: process.env.HOSTNAME,
  mongo: {
    databaseName: process.env.MONGO_DATABASE_NAME,
    url: process.env.MONGO_URL,
  }
}

Vous n’aurez plus qu’à appeler le fichier config.js et le nom de la variable que vous voulez pour avoir accès à la configuration du .env et ainsi avoir accès de manière encore plus optimale à toutes vos variables.

Vous aimerez aussi...