爲了解決來自Redux的警告背後的問題,我偶然發現了the advice,它解釋了在使用React或Redux來生成針對生產使用進行優化的構建時,envifying是必需的步驟。 Envifying被解釋爲用諸如'production'
等實際值代替節點特定環境變量(例如process.env.NODE_ENV
)的過程。envifying客戶端庫有什麼意義?
接受envifying是必要的,並且上面的解釋是真實的,它讓我感到困惑,因爲它似乎假定客戶端庫(如React和Redux)將包含特定於節點的環境變量。是的,我知道這些庫尤其適合構建同構/通用JavaScript應用程序,但會發現令人驚訝。我正確理解這一點?如果是的話,那麼我需要知道process.env.NODE_ENV
在節點外使用的模式的解釋嗎?
如果我正確理解這個建議,它會提示如果我使用Webpack,我可能想要使用像這樣的插件,如DefinePlugin
。
new webpack.DefinePlugin({
"process.env.NODE_ENV": process.env.NODE_ENV,
}),
似乎這還需要我的NODE_ENV變量設置爲目標環境中的建設我想生產爲我的客戶端代碼。這是非常奇怪的,因爲我在構建服務器上設置了一個環境變量,以反映實際代碼在其部署到的服務器上運行的環境。
所有這些讓我覺得我錯過了一般模式的東西。
相關信息:
謝謝您確認此案。如果在其他不適用於服務器的客戶端框架中使用'process.env',我會很好奇。 – jpierson