2017-06-04 119 views
1

我已經使用例如「webpack」檢出了大量有關「webpack環境變量」的SO問題。在DefinePlugin:將Linux bash中定義的環境變量獲取到webpack

new webpack.DefinePlugin({'ENV': JSON.stringify('staging')}) 

,但我不能爲我的生活找到一個方法注入在linux bash shell中定義的環境變量,而不是使用硬編碼staging

在我的生產和分期environements我有變量,如$ENV$API_KEY定義,我想在我的webpack/ReactJs代碼中使用它們的值。

編輯

我發現,如果我從CLI運行一個命令的WebPack:

$ ENVIRONMENT=staging 
$ node_modules/.bin/webpack -p 

在我webpack.config.js文件定義

new webpack.DefinePlugin({'ENV': JSON.stringify(process.env.ENVIRONMENT)}) 

這確實不工作(ENV在我的JS代碼中未定義),

Ho wever,如果我在同一行上運行它,它似乎工作 - 環境似乎是在webpack.config.js文件中提供:

$ ENVIRONMENT=staging node_modules/.bin/webpack -p 

所以我真的想使這項工作,而不必定義環境變量與webpack命令位於同一行。

+1

使用'process.env。$ ENV'? – Li357

回答

2

nodejs您可以通過process.env對象獲取您的環境變量。在你的情況下,你可以做process.env.$ENVprocess.env.$API_KEY分別獲得$ENV$API_KEY環境變量。

0

愚蠢的我忘記了給變量導出bash的終端

$ export ENVIRONMENT=staging 
$ node_modules/.bin/webpack -p 

工作正常,正如指出的那樣,可以再用process.env.ENVIRONMENT從內webpack.config.js訪問環境變量