Un package Node pour gérer les variables d'environnement sous Windows/Mac/Linux

Si vous avez des problèmes pour uniformiser la gestion des variables d’environnement dans vos commandes, il y a une solution !

Un package Node pour gérer les variables d'environnement sous Windows/Mac/Linux

Si vous contribuez à un projet dans lequel les développeurs et développeuses travaillent sur des OS différents, vous avez sûrement pu rencontrer des problèmes de gestion de variables d'environnement.

Mais pourquoi ne pas simplement utiliser un package comme dotenv par exemple ?

Parce que ce n'est pas toujours possible ! Par exemple lorsque vous appelez un outil de build (type webpack) et que vous devez lui passer une variable d'environnement, vous n'allez pas changer le code de l'outil pour inclure dotenv.

Voilà l'outil qui va suivre peut s'avérer très pratique, surtout pour les devs qui travaillent sous Windows et dont la syntaxe pour les variables d'environnement change entre cmd et Powershell...

cross-env

Voici un paquet NodeJS qui va vous permettre de régler ce problème, et son utilisation est très simple :

$ npm install cross-env --save

Ensuite, il vous suffira d'invoquer cross-env, d'initialiser toutes les variables d'environnement que vous désirez et d'appeler le reste de votre commande classique. Exemple :

$ cross-env  NODE_ENV=production node index.js

Vous aurez remarqué qu'on ne chaîne pas les commandes ici (comme avec &&), car c'est en réalité cross-env qui va "internaliser" l'exécution de votre commande en créant un nouveau processus avec spawn.

Un article sur le fonctionnement de spawn est disponible sur le blog pour ceux que cela intéresse !

Si vous avez besoin de lancer une commande composée de plusieurs sous-commandes ou bien d'utiliser directement la valeur de vos variables d'environnement (à l'extérieur de Node), vous devrez utiliser cross-env-shell à la place :

$ cross-env-shell   NODE_ENV=production "node index.js && echo $NODE_ENV"

Si vous cherchez plus d'informations, je vous invite à regarder la documentation directement sur NPM : https://www.npmjs.com/package/cross-env

J'espère que cet article vous aura été utile, et à bientôt sur le blog !

Les articles les plus populaires du blog

Envie de continuer à lire des articles autour du développement web (entre autres) ? Voici la sélection des articles de mon blog les plus lus par la communauté !

Voir la sélection 🚀

Recevez les articles de la semaine par e-mail pour ne rien manquer !

S'abonner à la newsletter 📧
Nos cours disponibles 🎓  -5% inclus pour les lecteurs du blog

À propos de l'auteur

Hello, je suis Nicolas Brondin-Bernard, ingénieur web indépendant depuis 2015 passionné par le partage d'expériences et de connaissances.

Aujourd'hui je suis aussi formateur/coach pour développeurs web juniors, tu peux me contacter sur nicolas@brondin.com, sur mon site ou devenir membre de ma newsletter pour ne jamais louper le meilleur article de la semaine et être tenu au courant de mes projets !


Photo par Mildlee sur Unsplash