2016-06-22 4 views
12

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

+2

hai provato _ qualsiasi cosa? –

+1

Usi un qualche tipo di modulo bundler? webpack? browserify? – topheman

+0

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

risposta

21

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

risorse: https://github.com/topheman/webpack-babel-starter

+0

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. –

+0

basta leggere un commento per il biglietto e sembra che ciò di cui hanno bisogno. Scusa. –

+0

@MikhailChibel Sì, scusa la domanda non è stata chiara. Volevo che le variabili funzionassero al momento della compilazione – sauronnikko