La variable NODE_ENV de Node JS

Node.js est devenu l’un des frameworks de développement Web le plus utilisé. En raison de sa structure d’entrée/sortie non bloquante et pilotée par les événements, les variables d’environnement, telles que NODE_ENV, ont gagné en popularité.

NODE_ENV est une variable indiquant si le serveur fonctionne en mode production ou développement.

La différence entre le mode « production » et « development » n’est pas des moindres. De nombreuses technologies utilisant NodeJS, se basent sur cette variable pour déterminer ce qui doit être inclus ou non dans la bibliothèque du projet.

Un exemple d’utilisation chez Webpack : Lorsque NODE_ENV n’est pas définie sur « production« , donc sur « development« , certaines librairies peuvent ajouter des « logs » importants et des tests supplémentaires pour faciliter le débogage. Cependant, avec NODE_ENV défini sur « production« , les librairies configurent les « logs » à un niveau minimal et essentiel, Webpack met en place un système de cache conséquent, et supprime/ajoute des portions importantes de code, tout ça afin d’optimiser le fonctionnement et les performances du projet.

Si beaucoup de technologies proposent aujourd’hui plusieurs outils et commandes pour gérer la valeur de NODE_ENV, il est possible de le faire via une simple ligne de code.

Prenons ici pour exemple notre utilisation de la variable, toujours avec Webpack :

Le mode « production » ou « development » est défini lors du lancement de Webpack, via les commandes « npm run dev » pour le mode « development » et « npm run build » pour le mode « production« .

C’est dans le fichier « pakage.json » que l’on retrouve ces lignes, rattachées aux scripts lancés via les commandes précédentes, et qui différent en fonction du système d’exploitation où se situe le projet.

Sur Windows :

Set NODE_ENV={valeur de la variable}

Sur MAC OS/Linux :

NODE_ENV={valeur de la variable}

Ici sur Windows, scripts lançant par la suite la librairie gulpJS

Une fois que le mode est correctement défini, le projet sera correctement compilé et optimisé pour son utilisation.

Sources :

To top