困惑我試圖設置一個標誌,通知我的代碼是否在生產或開發。到目前爲止,我已經看到了:有多少種方式設置NODE_ENV
在VS代碼的launch.json
:
{ "configurations": { "env": "NODE_ENV": "development" } }
在節點的package.json
:
{ "scripts": { "start": "NODE_ENV=production" } }
在的WebPack的webpack.config.js
:
module.exports = { "plugins": new webpack.DefinePlugin({ 'process.env.NODE_ENV': '"production"' }) }
在運行的代碼:
個set NODE_ENV=production && node app
NPM包:
https://www.npmjs.com/package/envify
PowerShell的:
$env:NODE_ENV="production"
我想我只是困惑,因爲默認情況下,我有那些當前設置的約4。這些如何相互作用?他們都指的是相同的變量?我應該只有其中之一嗎?哪些覆蓋其他人?
我真的更喜歡如果只有一個點來設置它,因爲它似乎每個單獨的模塊可以讓你指定它,因此,我很困惑它實際上被設置。另外,還有無論如何在客戶端訪問此標誌,還是僅在服務器端?
設置'環境變量'似乎是一種很好的方法,並且獨立於軟件包,模塊或IDE。 –
@MukeshSharma:那麼我會刪除這裏列出的所有其他列表嗎?我認爲'React'需要webpack才能在客戶端的生產環境中運行。 –
是的,但是'webpack'又一次設置了在服務器上運行的'node'環境。這裏也已經討論過了。 https://github.com/gaearon/react-transform-boilerplate/issues/54 –