Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

534
Visualizações
¿Es posible usar dotenv en un proyecto de reacción?

Estoy tratando de establecer algunas variables de entorno (para realizar llamadas API a puntos finales dev/prod, claves según dev/prod, etc.) y me pregunto si funcionará el uso de dotenv.

Instalé dotenv y estoy usando webpack.

La entrada de mi paquete web es main.js , por lo que en este archivo puse require('dotenv').config()

Luego, en la configuración de mi paquete web, puse esto:

 new webpack.EnvironmentPlugin([ 'NODE_ENV', '__DEV_BASE_URL__' //base url for dev api endpoints ])

Sin embargo, aún no está definido. ¿Cómo puedo hacer esto correctamente?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Lo siento por retomar la vieja pregunta, pero
react-scripts en realidad usa la biblioteca dotenv bajo el capó.

Con react-scripts@0.2.3 y superior, puede trabajar con variables de entorno de esta manera:

  1. crear archivo .env en la raíz del proyecto
  2. establecer variables de entorno que comiencen con REACT_APP_ allí
  3. acceda a él por process.env.REACT_APP_... en componentes

.env

 REACT_APP_BASE_URL=http://localhost:3000

Aplicación.js

 const BASE_URL = process.env.REACT_APP_BASE_URL;

Ver documentos para más detalles.

over 4 years ago · Santiago Trujillo Relatório

0

La respuesta corta es no. Un navegador no puede acceder a las variables de entorno locales o del servidor, por lo que dotenv no tiene nada que buscar. En su lugar, especifica variables ordinarias en su aplicación React, generalmente en un módulo de configuración.

Se puede hacer que Webpack tome variables de entorno de la máquina de compilación y las hornee en sus archivos de configuración. Sin embargo, funciona reemplazando cadenas en tiempo de compilación, no en tiempo de ejecución. Por lo tanto, cada compilación de su aplicación tendrá los valores codificados en ella. Estos valores serían accesibles a través del objeto process.env .

 var nodeEnv = process.env.NODE_ENV;

Además, puede usar DefinePlugin para webpack que le permite especificar explícitamente diferentes valores según su objetivo de compilación (dev, prod, etc.). Tenga en cuenta que debe JSON.stringify todos los valores que se le pasan.

 new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development') }),

Esto está bien para cualquier tipo de información pública, pero nunca debe usarse para ningún tipo de claves privadas, contraseñas o secretos de API . Esto se debe a que todos los valores incorporados son de acceso público y podrían usarse de forma malintencionada si contienen detalles confidenciales. Para ese tipo de cosas, debe escribir un código del lado del servidor y crear una API simple que pueda autenticarse con la API de terceros utilizando los secretos, luego pasar los detalles relevantes a su aplicación del lado del cliente. Su API del lado del servidor actúa como intermediario, protegiendo sus secretos mientras obtiene los datos que necesita.

over 4 years ago · Santiago Trujillo Relatório

0

En realidad, puede usar dotenv en su aplicación React con webpack. Además, hay varias formas de hacerlo. Sin embargo, tenga en cuenta que sigue siendo una configuración en tiempo de compilación.

  1. Una forma similar a la respuesta anterior. dotenv en la configuración de su paquete web y usa DefinePlugin para pasar las variables a su aplicación React. En este blog se puede encontrar una guía más completa sobre cómo puede inyectar sus archivos .env dependiendo de la configuración actual.

  2. Usando un dotenv-webpack . Personalmente lo encuentro muy conveniente. Supongamos que tiene entornos: dev , staging y prod . Usted crea un archivo .env para cada entorno ( .env.dev , .env.staging , etc.). En la configuración de su paquete web, debe elegir un archivo correcto para el entorno:

     const Dotenv = require('dotenv-webpack'); module.exports = (env, argv) => { const envPath = env.ENVIRONMENT ? `.env.${env.ENVIRONMENT}` : '.env'; const config = { ... plugins: [ new Dotenv({ path: envPath }) ] }; return config; };

Cuando crea la aplicación para un entorno en particular, simplemente pase el nombre del entorno a webpack:

 webpack --config webpack.config.js --env.ENVIRONMENT=dev
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda