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