Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

264
Views
¿Por qué el objeto process.env está vacío pero puedo acceder a sus propiedades?

Acabo de encontrarme con la idea de usar variables de entorno en una base de código de React front-end que estoy viendo. Cuando ejecuto la aplicación React localmente, puedo ver que cuando console.log process.env.VALUE, este valor se cerrará en la consola del navegador.

Sin embargo, si hago console.log(process.env) solo veo un objeto vacío. He visto otras respuestas para esto en Stack Overflow pero no pude entenderlas. No tiene sentido para mí cómo puedo acceder a las propiedades en process.env pero no puedo cerrar sesión en process.env. ¿No es solo un objeto que contiene todas las variables de entorno que están configuradas?

Si alguien puede explicar esto simplemente, sería apreciado. Gracias.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

La razón de esto es que React usa naturalmente webpack.DefinePlugin cuando está construyendo su compilación de producción. Esa biblioteca básicamente hace que su variable process.env sea esencialmente 'marcadores de posición', lo que significa que todos los valores se reemplazan durante el tiempo de compilación . Es por eso que process.env devuelve {} , mientras que process.env.NODE_ENV devuelve el correcto, por ejemplo.

Ligeramente fuera de tema, pero en Next.js (un marco de React), todas las variables de entorno también se reemplazan durante el tiempo de compilación (por motivos de seguridad). Eso significa que process.env no es un objeto JavaScript normal en Next.js. Internamente, también usan webpack.DefinePlugin .

Como adición a la respuesta, el navegador no tiene acceso a process.env . React está básicamente compilado en HTML/CSS/JS, lo que significa que la aplicación es solo un sitio estático. process.env es una cosa de Node.js.

Ejemplo:

  • Imagine que tiene una variable de entorno llamada FOO con valor BAR en cualquier entorno que desee cuando cree su aplicación.
  • Compile la aplicación, React usa webpack.DefinePlugin para transformar su FOO en process.env.FOO . Es literalmente process.env.FOO . El compilador no crea un objeto llamado process.env con un atributo FOO . Literalmente, el process.env.FOO se adjunta en el objeto de window de su aplicación.
  • Supone que está en process.env.FOO y que existe en su aplicación durante el tiempo de ejecución.
  • Intenta falsamente acceder al objeto process.env (no es y nunca ha sido un objeto) desde el comienzo de la compilación, y es por eso que devuelve un objeto vacío; simplemente nunca es un objeto para empezar por las razones que Lo he explicado en lo anterior.

Referencias:

  • DefinePlugin por Webpack
  • Variables de entorno de React.js
  • Variables de entorno de Next.js
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!