Javascript 羡慕客户端库有什么意义?

Javascript 羡慕客户端库有什么意义?,javascript,node.js,webpack,redux,envify,Javascript,Node.js,Webpack,Redux,Envify,在试图解决Redux警告背后的问题时,我偶然发现了这一点,它解释了在使用React或Redux时,嫉妒是一个必要的步骤,以便生成针对生产使用进行优化的构建。解释为将特定于节点的环境变量(如process.env.node_env)替换为实际值(如'production')的过程 承认嫉妒是必要的,并且上述解释是正确的,这让我感到困惑,因为它似乎假设客户端库(如React和Redux)将包含特定于节点的环境变量。是的,我知道这些库在构建同构/通用JavaScript应用程序时特别受欢迎,但我会发现

在试图解决Redux警告背后的问题时,我偶然发现了这一点,它解释了在使用React或Redux时,嫉妒是一个必要的步骤,以便生成针对生产使用进行优化的构建。解释为将特定于节点的环境变量(如
process.env.node_env
)替换为实际值(如
'production'
)的过程

承认嫉妒是必要的,并且上述解释是正确的,这让我感到困惑,因为它似乎假设客户端库(如React和Redux)将包含特定于节点的环境变量。是的,我知道这些库在构建同构/通用JavaScript应用程序时特别受欢迎,但我会发现这是令人惊讶的。我想我理解得对吗?如果是这样的话,我是否需要了解在节点外部使用
process.env.NODE\u env
的位置对模式的解释

如果我正确理解了这个建议,它会建议如果我在使用Webpack,我可能希望使用像
DefinePlugin
这样的插件

  new webpack.DefinePlugin({
    "process.env.NODE_ENV": process.env.NODE_ENV,
  }),
这似乎还需要将NODE_ENV变量设置为要为客户端代码生成的构建的目标环境。这是非常奇怪的,因为我在构建服务器上设置了一个环境变量,以反映实际代码在部署到的服务器上运行的环境

所有这些都让我觉得我在总体模式上遗漏了一些东西

有关资料:


您也可以拥有web应用程序的生产和开发版本/条件!正如您所提到的,许多同构JS框架都使用它

对于使用
process.env

  • 不需要垫片来支撑它-Browserify有一个自动时钟,大约为2kb,这很重要
  • 更好地缩小代码-当代码变得像
    if(“开发”==“生产”)
    时,一个好的缩小器可以将其完全去除

  • 请记住,Webpack是关于转换您的(通常是客户端)代码的。添加一些东西来基本上查找并替换
    process.env
    的所有实例完全在其用例中,并允许您创建基于环境的行为,而无需引入新的API。在
    webpack.config
    中设置其值实际上与在操作系统上设置环境变量没有什么不同。

    感谢您确认此情况。我很好奇,
    process.env
    是否在其他不打算在服务器上使用的客户端框架中流行。