Creé el proyecto IntelliJ IDEA React predeterminado y obtuve esto:
Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:67:19) at Object.createHash (node:crypto:130:10) at module.exports (/Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/util/createHash.js:135:53) at NormalModule._initBuildHash (/Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:417:16) at handleParseError (/Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:471:10) at /Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:503:5 at /Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:358:12 at /Users/user/Programming Documents/WebServer/untitled/node_modules/loader-runner/lib/LoaderRunner.js:373:3 at iterateNormalLoaders (/Users/user/Programming Documents/WebServer/untitled/node_modules/loader-runner/lib/LoaderRunner.js:214:10) at iterateNormalLoaders (/Users/user/Programming Documents/WebServer/untitled/node_modules/loader-runner/lib/LoaderRunner.js:221:10) /Users/user/Programming Documents/WebServer/untitled/node_modules/react-scripts/scripts/start.js:19 throw err; ^
Parece ser un problema reciente: webpack se encontró con esto hace 4 días y todavía está trabajando en ello .
Esto funcionó para mí en mi exposición de aplicaciones (bajando de Node.js 17 a Node.js 12 o 14).
Si tiene nvm instalado, puede cambiar la versión del nodo:
Primero verifique las versiones de Node.js en nvm:
nvm list
Segundo, instale la versión 12 o 14:
nvm install v12.22.8
En una terminal (OS X), simplemente degrada así:
sudo n 16.13.0
En los proyectos Angular.io , la versión aceptada (no compatible) de Nodes.js es v16.xx.
En la versión Nodes v17.x , ocurre el mismo error descrito en esta pregunta.
Solución:
Desinstale los nodos y vuelva a instalar la versión v16.x (para Windows).
arreglado usando lts
echo "lts" > .nvmrc nvm install
controlar
node -v v17.4.0
luego retroceda al nodo --lts (nodo v16.13.2 (npm v8.1.2)) para ese uso nvm
para shell bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
para shell zsh
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | zsh
después de instalar nvm
nvm install --lts
controlar
node -v
v16.13.2
reintentar de nuevo
Si está utilizando react-scripts
ahora puede simplemente actualizar a la versión 5.0.0 (o superior), que parece haber solucionado este problema ( incluye una versión más nueva de webpack ).
En su archivo package.json :
cambiar la línea
"start": "react-scripts start"
para
"start": "react-scripts --openssl-legacy-provider start"
Algunas respuestas principales no funcionaron.
export NODE_OPTIONS=--openssl-legacy-provider
Y algunas respuestas principales no eran aplicables, modificando el archivo package.json
:
"start": "react-scripts --openssl-legacy-provider start"
Esto se debe a los últimos problemas compatibles con node.js V17
con OpenSSL
, consulte este y este problema en GitHub.
Lo más fácil es simplemente degradar de node.js V17
a node.js V16
. Consulte esta publicación sobre cómo degradar node.js
Me encontré con este problema hoy y lo resolví cambiando la versión de Node.js usando "nvm".
He estado trabajando en un par de proyectos personales usando Node.js, Next.js y React ... Lo que me pasa a menudo es que no recuerdo exactamente qué versión de Node.js uso para qué proyecto. .
Y, por lo general, intentaría usar Node.js 16 para un proyecto que actualmente usa Node.js 14 (actualmente estoy en Node.js 17).
No he descubierto una mejor manera de recordar la versión de Node.js para cada proyecto, por lo que normalmente guardaría todos los comandos que necesito ejecutar para iniciar la aplicación en readme.MD.
Vaya a: : https://nodejs.org/en/
Y descargue la versión recomendada para la mayoría de los usuarios.
Luego desinstale Node.js de su PC e instale la versión recomendada .
Por lo que entiendo, este es un problema del equipo de desarrolladores. Lo arreglarán lo antes posible, pero mientras tanto use la versión recomendada y todo estará bien.
Esta solución funcionó para mí.
Este error viene en la versión 17+ de Node.js, así que intente degradar la versión de Node.js.
Eso es todo.
Estaba enfrentando el mismo problema con Node.js 17.0.1. Lo resolví siguiendo estos pasos:
Abra el Panel de control → Programa y características → Node.js y desinstale Node.js haciendo clic derecho en un
Vaya al sitio web https://nodejs.org/en/ y descargue la versión e instálela.
Esto funcionó para mí (bajar de Node.js 17 a Node.js 16):
nvm install --lts nvm use --lts
Usando el Administrador de versiones de Node.js ( para Windows ).
En Dockerfile debe agregar:
ENV NODE_OPTIONS=--openssl-legacy-provider
Encontré los siguientes comandos en GitHub:
Para Windows, use el siguiente comando en cmd:
set NODE_OPTIONS=--openssl-legacy-provider
Para Unix, utilice:
export NODE_OPTIONS=--openssl-legacy-provider
Es la versión de Node.js.
Tengo este error en Node.js 17, pero está bien cuando cambio mi versión de Node.js a una versión anterior (16) usando nvm
.
Tratar:
npm create react-app --template typescript foo --use-npm
Si se enfrenta a este error y no desea cambiar su configuración principal, una solución fácil sería utilizar el siguiente enfoque. Sin embargo, no estoy seguro de si se recomienda como una buena práctica.
Siéntete libre de corregirlo.
Inicialmente, digamos que esta es la sección de scripts de mi archivo package.json
:
... "version": "1.0.0", "scripts": { ... "build": "npm run build:test-app:testing", "build:test-app:testing": "ng build test-app --deploy-url https://test-app.com/ --configuration=test-config", ... }, "private": true, ...
Para utilizar esta export NODE_OPTIONS=--openssl-legacy-provider
, puede hacer lo siguiente:
"version": "1.0.0", "scripts": { .... "build": "NODE_OPTIONS=--openssl-legacy-provider npm run build:test-app:testing”, "build:test-app:testing": "NODE_OPTIONS=--openssl-legacy-provider ng build test-app --deploy-url https://test-app.com/ --configuration=test-config" ... }, "private": true,
Tome nota de los scripts de compilación. He agregado una opción: NODE_OPTIONS=--openssl-legacy-provider
Esto ayuda a resolver este error en la versión 17 de Node.js.
Para aquellos con la flexibilidad de cambiar la versión de Node.js del sistema de compilación, simplemente cambie a una versión inferior a la 17, por ejemplo, la versión 16.
Para Docker, el caso de uso de usar esto inicialmente, que siempre extrae la última versión:
... FROM node:alpine ...
Puedes cambiar a algo como:
... FROM node:16-alpine3.12 ...
Enfrenté este problema en la compilación de Docker y agregué esta línea en el archivo de Docker:
RUN export NODE_OPTIONS=--openssl-legacy-provider && yarn build && yarn install --production --ignore-scripts --prefer-offline
Para el desarrollo local, agregue el modificador en el archivo package.json .
Si usamos la versión LTS actual de Node.js, este error no aparecerá. Rebaje su versión de Node.js a la versión LTS actual (16.13.0).
Puede haber varias formas de instalar la versión requerida. Uno de ellos está usando nvm (administrador de versiones de Node.js).
Paso 1: Instale nvm (si no está instalado, siga Instalar Node.js localmente con Node Version Manager (nvm) )
Paso 2: nvm install 16.13.0
(o lts)
Error al construir el transformador: Error: error:0308010C:rutinas de envolvente digital::no compatible
La solución más simple y fácil para resolver el error anterior es degradar Node.js a v14.18.1. Y luego simplemente elimine la carpeta node_modules
e intente reconstruir su proyecto y su error debe resolverse.
Aquí hay dos opciones ahora:
1. Intente desinstalar Node.js versión 17+ y reinstale Node.js versión 16+
2. Abra la terminal y péguelos como se describe:
Linux y Mac OS (windows git bash)-
export NODE_OPTIONS=--openssl-legacy-provider
Símbolo del sistema de Windows-
set NODE_OPTIONS=--openssl-legacy-provider
Enlace de referencia.
En su paquete.json: cambie esta línea
"start": "react-scripts start"
para
"start": "react-scripts --openssl-legacy-provider start"