为了解决来自 Redux 的警告背后的问题,我偶然发现了一个建议,该建议解释了在使用 React 或 Redux 时,为了生成针对生产使用而优化的构建,envifying 是必要的步骤。Envifying被解释为process.env.NODE_ENV
用实际值(例如'production'
.
接受 envifying 是必要的并且上述解释是正确的,这让我感到困惑,因为它似乎假设 React 和 Redux 等客户端库将包含节点特定的环境变量。是的,我知道这些库特别适用于构建同构/通用 JavaScript 应用程序,但会令人惊讶。我理解正确吗?如果是这样,是否有我需要注意在process.env.NODE_ENV
节点之外使用的模式的解释?
如果我正确理解了这些建议,它会建议如果我使用 Webpack,我可能想要使用DefinePlugin
类似这样的插件。
new webpack.DefinePlugin({
"process.env.NODE_ENV": process.env.NODE_ENV,
}),
这似乎还需要我将 NODE_ENV 变量设置为我想为我的客户端代码生成的目标环境。这很奇怪,因为我在构建服务器上设置了一个环境变量,以反映实际代码在部署到的服务器上运行的环境应该是什么。
所有这一切让我觉得我在一般模式方面遗漏了一些东西。
相关信息: