Migré los scripts de reacción a 5.0.0 para nuestra aplicación de reacción del cliente web. Desde entonces, no se puede cargar el cliente web en el navegador debido a un error de referencia no detectado que proviene de main.js en node_modules/dotenv/lib, como se muestra a continuación.
function config (options /*: ?DotenvConfigOptions */) /*: DotenvConfigOutput */ { let dotenvPath = path.resolve(process.cwd(), '.env') ----------> **Failing Here** let encoding /*: string */ = 'utf8' let debug = false if (options) { if (options.path != null) { dotenvPath = options.path } if (options.encoding != null) { encoding = options.encoding } if (options.debug != null) { debug = true } }Esta es la pila de llamadas que aparentemente muestra que el problema proviene del arranque del paquete web...
main.js:78 Uncaught ReferenceError: process is not defined at Object.config (main.js:78:1) at Module../src/index.jsx (index.jsx:8:1) at Module.options.factory (react refresh:6:1) at __webpack_require__ (bootstrap:24:1) at startup:7:1 at startup:7:1¿pueden ayudarme a resolver esto?
Webpack y create-react-app / react-scripts son complejos, por lo que no estoy seguro de poder responder a su pregunta, pero un par de posibles sugerencias:
Webpack 5 ya no incluye de manera predeterminada los polyfills de Node.js que proporcionó Webpack 4, por lo que es posible que los módulos como process ya no estén disponibles. Para más información:
Para su proyecto en particular, noté que el error se genera desde el paquete dotenv. No hay razón para usar dotenv en una aplicación web; dotenv es para cargar variables de entorno process.env desde un archivo .env fuera del sistema de archivos, pero una aplicación web no puede acceder a su sistema de archivos. En su lugar, Create React App toma cualquier variable de entorno REACT_APP_... de su propio entorno y las expone a la aplicación web, o puede configurar Webpack para definir variables de entorno, pero eso se haría desde las configuraciones de su Webpack, en lugar de acceder dotenv desde la propia aplicación web.