Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

281
Vistas
React Uncaught ReferenceError: el proceso no está definido

Tengo problemas con iframe. Hasta hoy todo funcionaba como se esperaba. Hoy agregué un componente Modal muy simple y de alguna manera iframe comenzó a aparecer. Aparece cuando estoy editando el archivo y se realiza la recarga en caliente. También con este problema, muestra un error en la consola como "Error de referencia no detectado: el proceso no está definido". ¿Puede alguien por favor ayudarme con esto?

 import React, {useEffect} from 'react'; import ReactDOM from "react-dom"; import Close from "../static/assets/close-white.svg" const trapStyles = { position: 'absolute', opacity: 0 } const Test = () => { return ReactDOM.createPortal( <div data-react-modal-body-trap="" tabIndex="0" style={trapStyles}/>, document.getElementById("app") ) } const Modal = ({ open, onClose, children }) => { useEffect(() => { if (open)document.getElementById("app").classList.add("ReactModal__Body--open"); return () => { document.getElementById("app").classList.remove("ReactModal__Body--open") } }) if (!open) return null return ReactDOM.createPortal( <> <Test /> <div className="ReactModal__Overlay--after-open"> <div className="modal-form-page" tabIndex="-1" role="dialog" aria-modal="true"> <button onClick={onClose} className="close-modal"> <img id="close-button" alt="close" src={Close}/> </button> { children } </div> </div> </>, document.getElementById("ModalPortal") ) }; export default Modal;
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"/> <link href="%PUBLIC_URL%/favicon.ico" rel="icon"/> <meta content="width=device-width, initial-scale=1" name="viewport"/> <meta content="#000000" name="theme-color"/> <link href="%PUBLIC_URL%/logo192.png" rel="apple-touch-icon"/> <link href="%PUBLIC_URL%/manifest.json" rel="manifest"/> <title>React App</title> </head> <body id="app"> <noscript>You need to enable javascript to run this website</noscript> <div id="content"> <-- All other content render here --> </div> <div class="ReactModalPortal" id="ModalPortal"></div> </body> </html>
 Uncaught ReferenceError: process is not defined at Object.4043 (<anonymous>:2:13168) at r (<anonymous>:2:306599) at Object.8048 (<anonymous>:2:9496) at r (<anonymous>:2:306599) at Object.8641 (<anonymous>:2:1379) at r (<anonymous>:2:306599) at <anonymous>:2:315627 at <anonymous>:2:324225 at <anonymous>:2:324229 at HTMLIFrameElement.e.onload (index.js:1) 4043 @ VM128:2 r @ VM128:2 8048 @ VM128:2 r @ VM128:2 8641 @ VM128:2 r @ VM128:2 (anonymous) @ VM128:2 (anonymous) @ VM128:2 (anonymous) @ VM128:2 e.onload @ index.js:1 be @ index.js:1 he @ index.js:1 tryDismissErrorOverlay @ webpackHotDevClient.js:184 onHotUpdateSuccess @ webpackHotDevClient.js:109 handleApplyUpdates @ webpackHotDevClient.js:257 (anonymous) @ webpackHotDevClient.js:273 load (async) be @ index.js:1 he @ index.js:1 tryDismissErrorOverlay @ webpackHotDevClient.js:184 onHotUpdateSuccess @ webpackHotDevClient.js:109 handleApplyUpdates @ webpackHotDevClient.js:257 (anonymous) @ webpackHotDevClient.js:273 Promise.then (async) tryApplyUpdates @ webpackHotDevClient.js:271 handleSuccess @ webpackHotDevClient.js:106 push../node_modules/react-dev-utils/webpackHotDevClient.js.connection.onmessage @ webpackHotDevClient.js:203
over 4 years ago · Santiago Trujillo
14 Respuestas
Responde la pregunta

0

El problema se resolvió actualizando react-scripts a 5.0.0

over 4 years ago · Santiago Trujillo Denunciar

0

Encontré la mejor solución.

El problema es que pierde la variable window.process cuando React se carga en caliente, y el proceso existe solo en el nodo, no en el navegador.

Por lo tanto, debe inyectarlo en el navegador cuando se carga la aplicación.

Agregue esta línea a App.js

 useEffect(() => { window.process = { ...window.process, }; }, []);
over 4 years ago · Santiago Trujillo Denunciar

0

Para aquellos que todavía tienen problemas con esto: si usa Webpack, ejecute npm install -D dotenv-webpack y si usa mecanografiado npm install -D @types/dotenv-webpack .
Luego, en la configuración de su paquete web, agregue import Dotenv from "dotenv-webpack"; Y

 ... plugins: [ ... new Dotenv(), ], ...

Consulte https://github.com/mrsteele/dotenv-webpack/blob/master/README.md

Después de probar todo lo demás, esto finalmente funcionó para mí.

over 4 years ago · Santiago Trujillo Denunciar

0

Intenté actualizar los scripts de reacción a 5.0.0, pero no funcionó.

Solución: -

npm i -D react-error-overlay@6.0.9

over 4 years ago · Santiago Trujillo Denunciar

0

Actualizar a react-scripts v5 no siempre es la solución.

El motivo completo de este error se describe aquí . En resumen, aquí hay un breve resumen:

El error es el resultado de react-error-overlay ( que muchas personas nunca habrían oído hablar porque es una dependencia de react-scripts ). Las dependencias de este paquete se actualizaron para admitir webpack v5, que desafortunadamente no es compatible con react-scripts v4.


Método 1

Si la actualización a react-scripts v5 no funciona para usted, también puede probar otra solución alternativa que consiste en anclar react-error-overlay a la versión 6.0.9 :

Agregue esto a su paquete.json

 "resolutions": { "//": "See https://github.com/facebook/create-react-app/issues/11773", "react-error-overlay": "6.0.9" }

Elimine su yarn.lock o package-lock.json , luego instale sus dependencias nuevamente.

hilo

yarn tendrá en cuenta el campo de resoluciones de forma inmediata.

Para los espacios de trabajo de hilo , coloque la resolución anterior en el package.json , no en la carpeta problemática. Ver este comentario de problema .

npm (leer)

Para los usuarios de npm , debe asegurarse de que npm use el campo resolutions cuando ejecuta npm install . Para automatizar la instalación, vea esta respuesta


Método 2

Otra solución (no tan popular) es usar un complemento de paquete web:

 plugins:[ new webpack.DefinePlugin({ process: {env: {}} }) ]

Si usa craco , solo necesita modificar su archivo craco.config.js para agregar ese complemento:

 { ... webpack: { plugins: { add: [ new webpack.DefinePlugin({ process: {env: {}} }) ] } } }

Para usuarios customize-cra , vea este comentario .

Este último método no es popular porque no muchos usuarios de CRA tienen que tocar el paquete web directamente para trabajar con reaccionar.

over 4 years ago · Santiago Trujillo Denunciar

0

La actualización de react-scripts 4.0.3 a 5.0.0 funcionó para mí.

Terminé con el siguiente error (relevante si estás usando craco):

TypeError: match.loader.options.plugins no es una función

Esto fue resuelto por @weiwei en su respuesta aquí

over 4 years ago · Santiago Trujillo Denunciar

0

Hasta que una solución sea definitiva ( tal vez este PR ), para cualquiera que use npm (no yarn), la solución es esta:

agregar a paquete.json:

 "resolutions": { "react-error-overlay": "6.0.9" }, "scripts":{ "preinstall": "npx npm-force-resolutions", .... }, "devDependencies":{ "react-error-overlay": "6.0.9", ... }

y luego hacer un

npm install

over 4 years ago · Santiago Trujillo Denunciar

0

Agregue este código en package.json

 "devDependencies": { "react-error-overlay": "6.0.9" },

Después de eso, ejecute el comando de instalación npm. Funcionó para mí después de 2 días de desplazamiento en Internet.

over 4 years ago · Santiago Trujillo Denunciar

0

en el archivo yarn.lock o package-lock.json para encontrar la cadena

 "react-error-overlay@npm:^6.0.9": version: 6.0.10 <-- here problem etc...

y reemplazar a

 react-error-overlay@^6.0.9: version "6.0.9" resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==

archivo guardado y ejecute la instalación de hilo

over 4 years ago · Santiago Trujillo Denunciar

0

Para aquellos que usan create-react-app con customize-cra, pueden usar la solución Método 2 de @smac89 con addWebpackPlugin, esto funciona para mí.

scripts de reacción: 5.0.0 paquete web: 5.64.4

 // config-overrides.js const webpack = require('webpack'); const { override, addWebpackPlugin } = require('customize-cra'); module.exports = override( addWebpackPlugin( new webpack.DefinePlugin({ process: { env: {} }, }) ) );

esta solución muestra una advertencia en el inicio de npm, pero la aplicación se compila correctamente.

 WARNING in DefinePlugin Conflicting values for 'process.env'

Esta advertencia no frenó nada, pero si alguien sabe cómo solucionarlo, responda este hilo :)

over 4 years ago · Santiago Trujillo Denunciar

0

Si está utilizando npm> v8.3, puede usar overrides como esta en su package.json .

 "overrides": { "react-error-overlay": "6.0.9" },

Para obtener más información acerca de las anulaciones, vaya aquí .

El problema es un cambio importante en 6.0.10 , algunas dependencias como react-dev-utils instalarán esta versión incluso si ancla la versión de react-error-overlay a 6.0.9 , por eso es necesario usar anulaciones.

over 4 years ago · Santiago Trujillo Denunciar

0

Actualizar los scripts de reacción de v4 a "scripts de reacción": "^ 5.0.0", parece que me ayudó

over 4 years ago · Santiago Trujillo Denunciar

0

Muchas respuestas sugieren anular la react-error-overlay reacción a 6.0.9 , pero esto no funcionó para mí (el 11 de febrero de 2022). Estaba usando react-scripts 5.0.0 y react-error-overlay 6.0.10 antes de probar la anulación de superposición.

En lugar de pasar por la molestia de definir la configuración del paquete web en mi aplicación CRA (como lo sugiere smac89 ), bajé la versión de react-scripts a 4.0.3 .

Funciona bien con react-scripts: 4.0.3 , que resolvió react-error-overlay a 6.0.10 .

Entonces, mi solución es:

  • Establezca "react-scripts": "4.0.3" en package.json
  • Elimine su archivo de bloqueo (yarn.lock o package-lock.json) y node_modules
  • Ejecutar instalación
over 4 years ago · Santiago Trujillo Denunciar

0

Me enfrenté al mismo problema hoy (14 de febrero de 22) usando contenedores Docker para una aplicación ReactJS y lo resolví degradando la versión de react-scripts a 4.0.3 y también instalando react-error-overlay en la versión 6.0.9. Así que los pasos fueron:

  1. Elimina el archivo package-lock.json
  2. En el archivo package.json
    1. Reemplace la dependencia "react-scripts": "4.0.3"
    2. Agregue react-error-overlay a las dependencias de desarrollo con "react-error-overlay": "6.0.9"
  3. Actualizar npm: actualización de npm

Espero que ayude a alguien a ahorrar algo de tiempo, Saludos.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda