Resolviendo el problema de Error: error:0308010C:rutinas de sobre digital::no admitidas al ejecutar una versión anterior del proyecto

ambiente

Nodo.js: v18.12.1

Herramientas de desarrollo: VsCode

El error al ejecutar el proyecto es el siguiente:

//报错主要提示,第一行。
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   //当前版本号。

razón

La versión de Node.js es demasiado alta y OpenSSl3.0 lanzado en la versión Node.js V17 agrega restricciones estrictas sobre los algoritmos permitidos y los tamaños de clave, lo que puede tener un impacto en el ecosistema.

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

Solución:

Solución permanente al problema:

Primero: entrada de línea de comando

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

Segundo: tome la iniciativa de bajar la versión de Node.js.

Modifique node.js a una versión no superior a 16

Este método no se recomienda porque en el desarrollo real, no es razonable exigir que cada desarrollador baje la versión debido a un proyecto. Algunos desarrolladores tienen varios proyectos, lo que provocará una reacción en cadena. No se introducirán detalles aquí.

Utilice variables de entorno para resolver el problema temporalmente : (la entrada de la línea de comando debe estar en modo administrador)

Primero: ¡No ingrese a la terminal de la herramienta de desarrollo en el entorno de Windows!

Ingrese en la línea de comando: reinicie el proyecto después de completar la entrada

set NODE_OPTIONS=--openssl-legacy-provider 

Segundo: ¡No ingrese a la terminal de la herramienta de desarrollo en entorno Linux o WSL!

export NODE_OPTIONS=--openssl-legacy-provider

Supongo que te gusta

Origin blog.csdn.net/youyudehan/article/details/128476816
Recomendado
Clasificación