Je suis nouveau sur react.js J'ai implémenté un composant dans lequel je récupère les données du serveur et les utilise comme,
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'
//});
});
},
Je souhaite stocker l'URL dans le fichier de configuration. Ainsi, lorsque je l'ai déployé sur un serveur de test ou en production, je dois simplement modifier l'URL du fichier de configuration, pas dans le fichier js, mais je ne sais pas comment utiliser le fichier de configuration dans react.js.
Quelqu'un peut-il me guider s'il vous plaît comment puis-je atteindre cet objectif?
Avec webpack, vous pouvez placer une configuration spécifique à env dans le champ externals
dans webpack.config.js
externals: {
'Config': JSON.stringify(process.env.NODE_ENV === 'production' ? {
serverUrl: "https://myserver.com"
} : {
serverUrl: "http://localhost:8090"
})
}
Si vous souhaitez stocker les configurations dans un fichier JSON séparé, vous pouvez également demander ce fichier et l'attribuer à Config
:
externals: {
'Config': JSON.stringify(production ? require('./config.prod.json') : require('./config.dev.json'))
}
Ensuite, dans vos modules, vous pouvez utiliser la configuration:
var Config = require('Config')
fetchData(Config.serverUrl + '/Enterprises/...')
Je ne sais pas si cela couvre votre cas d'utilisation, mais cela fonctionne plutôt bien pour nous.
Si vous avez utilisé Create React App, vous pouvez définir une variable d'environnement à l'aide d'un fichier .env. La documentation est ici:
https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables
Fondamentalement, faites quelque chose comme ceci dans le fichier .env à la racine du projet.
REACT_APP_SECRET_CODE=abcdef
Vous pouvez y accéder depuis votre composant avec
process.env.REACT_APP_SECRET_CODE
Vous pouvez utiliser le paquet dotenv quelle que soit la configuration que vous utilisez. Il vous permet de créer un fichier .env dans la racine de votre projet et de spécifier vos clés comme suit.
SERVER_PORT=8000
Dans votre fichier d’entrée d’application, appelez simplement dotenv (); avant d'accéder aux touches comme ça
process.env.SERVER_PORT
J'ai trouvé cela assez difficile à résoudre et la solution très simple. Je suis nouveau dans ReactJS et je viens d’apprendre en construisant une interface ReactJS sur un serveur Django. Je souhaite utiliser le serveur Django local pour le développement ( http: // localhost: 8000 ) et le site Web, une fois déployé.
Je pense que j’ai probablement une version récente de React, ce qui explique peut-être pourquoi j’ai besoin de faire si peu, car j’ai dû créer un fichier .env
dans le répertoire racine du projet avec REACT_APP_serverURL = "https://example.com"
et un fichier .env.development
avec REACT_APP_serverURL = "http://localhost:8000"
Je peux alors obtenir la valeur utilisée de process.env.REACT_APP_serverURL
Lorsque je veux exécuter localement, je lance npm run start : env.development
et si je veux utiliser le backend réellement actif, je peux utiliser npm run start
.