Sou novo no react.js, implementei um componente no qual estou buscando os dados do servidor e o 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'
//});
});
},
Quero armazenar o Url no arquivo de configuração, então quando implantar isso no servidor de teste ou na produção, preciso apenas alterar o url no arquivo de configuração, não no arquivo js, mas não sei como usar o arquivo de configuração no react.js
Alguém pode me orientar como posso conseguir isso?
javascript
reactjs
configuration
webpack
flux
Dhaval Patel
fonte
fonte
Respostas:
Com o webpack você pode colocar configurações específicas de env no
externals
campo emwebpack.config.js
Se você deseja armazenar as configurações em um arquivo JSON separado, isso também é possível, você pode exigir esse arquivo e atribuir a
Config
:Então, em seus módulos, você pode usar a configuração:
Para React:
Não tenho certeza se cobre seu caso de uso, mas tem funcionado muito bem para nós.
fonte
externals
espera que um código seja avaliado, você precisa sequenciar o JSON.Se você usou Create React App, pode definir uma variável de ambiente usando um arquivo .env. A documentação está aqui:
https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables
Basicamente, faça algo assim no arquivo .env na raiz do projeto.
Você pode acessá-lo de seu componente com
fonte
REACT_APP_
REACT_APP_MYSETTING=value
-lo, em seguida, referir-se a ele comoprocess.env.REACT_APP_MYSETTING
em meu código JSX e funcionou. Obrigado!Você pode usar o pacote dotenv independentemente da configuração que usar. Ele permite que você crie um .env na raiz do seu projeto e especifique suas chaves como tal
No arquivo de entrada de seu aplicativo, basta chamar dotenv (); antes de acessar as chaves assim
fonte
REACT_APP_
Caso você tenha um arquivo .properties ou um arquivo .ini
Na verdade, se você tiver algum arquivo que tenha pares de valores-chave como este:
Você pode importar isso para o webpack por um módulo npm chamado properties-reader
Achei isso muito útil, pois estou integrando o react com a estrutura Java Spring, onde já existe um arquivo application.properties. Isso me ajuda a manter todas as configurações juntas em um só 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/...')
fonte