Article original : Error: error:0308010c:digital envelope routines::unsupported [Node Error Solved]
Si vous travaillez avec Node.js et des solutions d'interface en ligne de commande (CLI) comme Webpack, create-react-app ou vue-cli-service, vous avez peut-être déjà rencontré l'erreur : Error: error:0308010c:digital envelope routines::unsupported.
Vous n'êtes pas seul, car je la rencontre également en ce moment :

L'application React a effectivement échoué à démarrer :

Dans cet article, vous apprendrez comment corriger cette erreur de 3 manières différentes. Mais d'abord, analysons les causes de cette erreur.
Quelles sont les causes de l'erreur « 0308010c:digital envelope routines::unsupported » ?
Il est probable que vous obteniez cette erreur pour deux raisons principales :
- Vous n'utilisez pas la version LTS (long term support) de Node.js. Vous pouvez voir que j'utilise Node 17.0.0, qui n'est pas une version LTS.
- Vous utilisez
react-scriptsavec une version inférieure à 5.
L'erreur peut également survenir simplement du fait de l'utilisation de Node 17.
Comment corriger l'erreur « 0308010c:digital envelope routines::unsupported »
Il existe au moins 3 façons de corriger cette erreur. Nous allons les examiner une par une. L'une d'entre elles devrait fonctionner pour vous.
Passer --openssl-legacy-provider à Webpack ou à l'outil CLI
Dans une application React, par exemple, vous pouvez passer --openssl-legacy-provider au script de démarrage comme ceci : "react-scripts --openssl-legacy-provider start".
Cela devrait suffire. Mais si cela ne corrige pas l'erreur, passez à la solution suivante. Dans de nombreux cas, cette méthode fonctionne.
Utiliser une version LTS de Node JS
Envisagez de rétrograder votre version de Node vers la 16.16.0 ou d'autres versions LTS.
Actuellement, la version 18.12.1 est la dernière version LTS de Node. Vous pouvez la télécharger sur le site officiel de Node JS ou utiliser NVM pour l'installer.
Mettre à jour react-scripts vers la version 5+
Si vous travaillez avec React et que les solutions précédentes n'ont pas fonctionné, il s'agit probablement d'un problème avec votre script React.
Si vous utilisez une version de react-scripts inférieure à 5, vous devriez la mettre à jour vers la version 5 ou supérieure.
Dans mon cas, j'utilise actuellement react-scripts 3.4.3 :

Pour mettre à jour react-scripts vers la version 5+, vous pouvez procéder de deux manières :
Désinstaller et réinstaller
react-scripts- Ouvrez le terminal et exécutez
npm uninstall react-scripts - Exécutez
npm install react-scripts
- Ouvrez le terminal et exécutez
Modifier manuellement la version du script React
- Allez dans votre fichier
package.jsonet changez la version dereact-scriptspour5.0.2 - Supprimez le dossier
node_modulesen exécutantrm –rf node_modules - Supprimez le fichier
package-lock.jsonen exécutantrm –rf package-lock.json - Exécutez
npm installouyarn add, selon le gestionnaire de paquets que vous utilisez
- Allez dans votre fichier
Après avoir mis à jour la version de react-scripts vers la 5+, mon application React fonctionne désormais correctement :


Conclusion
Comme nous l'avons souligné dans cet article, si vous obtenez l'erreur « 0308010c:digital envelope routines::unsupported », cela peut être dû au fait que vous n'utilisez pas une version LTS de Node JS, ou que vous utilisez une version de react-scripts inférieure à 5.
Nous espérons que les correctifs abordés dans ce tutoriel vous aideront à résoudre cette erreur. Si l'une des solutions ne fonctionne pas, essayez les autres. Dans mon cas, c'est la mise à jour de react-scripts vers la version 5+ qui a fonctionné.
Merci de votre lecture.