Soy nuevo en react.js He implementado un componente en el que estoy obteniendo los datos del servidor y los uso como,
CallEnterprise:function(TenantId){
fetchData('http://xxx.xxx.xx.xx:8090/Enterprises?TenantId='+TenantId+' &format=json').then(function(enterprises)
{
EnterprisePerspectiveActions.getEnterprise(enterprises);
}).catch(function()
{
alert("There was some issue in API Call please contact Admin");
//ComponentAppDispatcher.handleViewAction({
// actionType: MetaItemConstants.RECEIVE_ERROR,
// error: 'There was a problem getting the enterprises'
//});
});
},
Quiero almacenar la URL en el archivo de configuración, así que cuando implementé esto en el servidor de prueba o en la producción, solo tengo que cambiar la URL en el archivo de configuración, no en el archivo js, pero no sé cómo usar el archivo de configuración en react.js
¿Alguien puede guiarme cómo puedo lograr esto?
javascript
reactjs
configuration
webpack
flux
Dhaval Patel
fuente
fuente
Respuestas:
Con el paquete web puede poner la configuración específica de env en el
externals
campo enwebpack.config.js
Si desea almacenar las configuraciones en un archivo JSON separado, eso también es posible, puede requerir ese archivo y asignarlo a
Config
:Luego, en sus módulos, puede usar la configuración:
Para reaccionar:
No estoy seguro de si cubre su caso de uso, pero nos ha funcionado bastante bien.
fuente
externals
espera que se evalúe un código, debe especificar el JSON.Si usó la aplicación Create React, puede establecer una variable de entorno usando un archivo .env. La documentación está aquí:
https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables
Básicamente, haga algo como esto en el archivo .env en la raíz del proyecto.
Puede acceder a él desde su componente con
fuente
REACT_APP_
REACT_APP_MYSETTING=value
, luego consultarlo comoprocess.env.REACT_APP_MYSETTING
en mi código JSX, y funcionó. ¡Gracias!Puede utilizar el paquete dotenv sin importar la configuración que utilice. Le permite crear un .env en la raíz de su proyecto y especificar sus claves así
En su archivo de entrada de aplicaciones, simplemente llame a dotenv (); antes de acceder a las claves así
fuente
REACT_APP_
En caso de que tenga un archivo .properties o un archivo .ini
En realidad, en caso de que tenga algún archivo que tenga pares clave-valor como este:
Puede importar eso en el paquete web mediante un módulo npm llamado properties-reader
Encontré esto realmente útil ya que estoy integrando react con el marco de Java Spring donde ya hay un archivo application.properties. Esto me ayuda a mantener todas las configuraciones juntas en un solo lugar.
"properties-reader": "0.0.16"
const PropertiesReader = require('properties-reader');
const appProperties = PropertiesReader('Path/to/your/properties.file')._properties;
externals: { 'Config': JSON.stringify(appProperties) }
var Config = require('Config') fetchData(Config.serverUrl + '/Enterprises/...')
fuente