Come è possibile utilizzare le variabili di ambiente definite in .bash_profile
in un'applicazione React? Ho due app React in produzione (sono lo stesso progetto, quindi hanno lo stesso codice), ma hanno bisogno di richiedere a diversi host API e ho capito che le variabili env potevano fare il trucco.Reagire: utilizzare le variabili di ambiente
risposta
Utilizzare webpack.DefinePlugin
. Diciamo che esportato FOO
e BAR
nella vostra .bash_profile
, allora il vostro webpackconfig dovrebbe assomigliare:
const config = {
entry: 'somescript',
// ...
module: {
// ...
},
// ...
plugins: [
// ... your plugins
new webpack.DefinePlugin({
'process.env':{
'FOO': process.env.FOO,
'BAR': process.env.BAR
}
})
],
// ...
}
Sarete in grado di accedere a quelli nelle vostre js al momento della compilazione via process.env.FOO
& process.env.BAR
Come hai detto, funzionerà solo al momento della compilazione. @sauronnikko ha detto che ha due progetti con lo stesso codice. Secondo la tua soluzione, avrà due diverse applicazioni con codice diverso. –
basta leggere un commento per il biglietto e sembra che ciò di cui hanno bisogno. Scusa. –
@MikhailChibel Sì, scusa la domanda non è stata chiara. Volevo che le variabili funzionassero al momento della compilazione – sauronnikko
hai provato _ qualsiasi cosa? –
Usi un qualche tipo di modulo bundler? webpack? browserify? – topheman
Non si indica ciò che si sta usando, ma di solito ciò avviene sul lato server poiché dubito che JS possa leggere qualsiasi variabile di ambiente. Nel nodo potresti fare 'process.env.API_HOST' – eblin