React : comment corriger l'erreur "error:0308010C:digital envelope routines::unsupported" ?

Le framework React est un des frameworks les populaires dans le développement de site internet. Il est maintenant intégré directement avec plusieurs environnements de développement, comme IntelliJ IDEA. Si lorsque vous créez un projet React, vous rencontrez le message d'erreur " error:0308010C:digital envelope routines::unsupported", cela vient de la configuration de NodeJS.

Ce problème est lié à la version 17 de NodeJS. Il s'agit d'un problème de communication avec le protocole SSL, qui assure la sécurité des communications avec les serveurs qui hébergent React. La solution la plus sécurisée consiste à changer la version de NodeJS utilisée. Ce bug n'existe pas lorsque vous utilisez NodeJS version 16. Il s'agit d'une version LTS, supportée jusqu'à septembre 2023. La manipulation à faire est de simplement désinstaller NodeJS, puis le réinstaller en version 16.

Si vous ne souhaitez pas ou ne pouvez pas changer de version, il existe un autre correctif. Il consiste à activer l'ancien réglage SSL. Cela va permettre d'utilisers la commande de création de projet, mais cela pose des problèmes de sécurité car l'ancien protocole SSL est moins sécurisé que le nouveau. Cette manipulation est donc à utiliser à vos risques et périls. Pour effectuer cette manipulation, vous devez utiliser la commande suivante dans une invite de commande pour Windows :

set NODE_OPTIONS=--openssl-legacy-provider

Si vous utilisez un système d'exploitation Max ou Linux, la commande "exporte" remplace la commande "set", depuis un terminal.

export NODE_OPTIONS=--openssl-legacy-provider

Si vous travaillez avec un projet qui utilise une commande de démarrage, vous devez alors modifier cette commande et ajouter l'option dans la section "start" du fichier "package.json" :

"start": "react-scripts --openssl-legacy-provider start"

JavaScript