Development模式是如何运作的?

原文:https://overreacted.io/how-do...
译者:前端技术小哥

Development模式是如何运作的?
如果您的JavaScript代码库非常复杂,那么您可能会想办法在开发模式和生产模式中捆绑和运行不同代码。

在开发模式和生产模式中捆绑并运行不同的代码是非常强大的。在开发模式中,React里有许多预警,可以帮助我们在导致bug之前找到问题。然而,检测此类错误所需的代码通常会增加bundle文件的大小,并使应用程序运行得更慢。

在开发模式中程序运行缓慢是可以接受的。事实上,在开发过程中减慢代码的运行速度甚至可能是有益的,因为它在一定程度上弥补了快速开发人员计算机和普通消费设备之间的差异。

在生产中,我们不想付出任何成本。因此,我们在生产中省略了这些检查。这是怎么回事?让我们来看看。

在开发中运行不同代码的确切方法取决于JavaScript构建管道(以及是否有)。Facebook是这样的:

if (__DEV__) {
  doSomethingDev();
} else {
  doSomethingProd();
}

这里,__DEV__不是一个真正的变量。它是一个常量,当浏览器的模块被拼接在一起时这个常量就被替换掉了。结果是这样的:

// In development:
if (true) {
  doSomethingDev(); //