Résoudre le problème de l'erreur : erreur : 0308010C : routines d'enveloppe numérique : non prises en charge lors de l'exécution d'une ancienne version du projet

environnement

Node.js :v18.12.1

Outils de développement : VsCode

L'erreur lors de l'exécution du projet est la suivante :

//报错主要提示,第一行。
Error: error:0308010C:digital envelope routines::unsupported  
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:133:10)
    at BulkUpdateDecorator.hashFactory (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\util\createHash.js:145:18)
    at BulkUpdateDecorator.update (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\util\createHash.js:46:50)    at OriginalSource.updateHash (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\node_modules\webpack-sources\lib\OriginalSource.js:131:8)
    at NormalModule._initBuildHash (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\NormalModule.js:888:17) 
    at handleParseResult (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\NormalModule.js:954:10)
    at D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\NormalModule.js:1048:4
    at processResult (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\NormalModule.js:763:11)
    at D:editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\NormalModule.js:827:5 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',

Node.js v18.12.1   //当前版本号。

raison

La version de Node.js est trop élevée. OpenSSl3.0 publié dans la version Node.js V17 ajoute des restrictions strictes sur les algorithmes autorisés et les tailles de clés, ce qui peut avoir un impact sur l'écosystème.

node -v    //cmd进入命令行输入命令,查看自己的版本号

Solution:

Solution permanente au problème :

Premièrement : saisie en ligne de commande

$env:NODE_OPTIONS="--openssl-legacy-provider"

Deuxièmement : prenez l'initiative de baisser la version de Node.js.

Modifier node.js vers une version ne dépassant pas 16

Cette méthode n'est pas recommandée car dans le développement réel, il n'est pas raisonnable d'exiger de chaque développeur qu'il rétrograde la version à cause d'un seul projet. Certains développeurs ont plusieurs projets, ce qui provoquera une réaction en chaîne. Aucun détail ne sera introduit ici.

Utilisez des variables d'environnement pour résoudre temporairement le problème : (La saisie en ligne de commande doit être en mode administrateur)

Premièrement : n'entrez pas dans le terminal de l'outil de développement dans l'environnement Windows !

Entrez sur la ligne de commande : Redémarrez le projet après avoir terminé la saisie

set NODE_OPTIONS=--openssl-legacy-provider 

Deuxièmement : n'entrez pas dans le terminal de l'outil de développement en environnement Linux ou WSL !

export NODE_OPTIONS=--openssl-legacy-provider

Je suppose que tu aimes

Origine blog.csdn.net/youyudehan/article/details/128476816
conseillé
Classement