react 源码中有一个不是问题的问题,但是很困惑

为什么react源码中会有类似下图这样的判断语句?(if("development" !== 'production'){...}

clipboard.png

翻了大半天也想不明白,这样有什么用意吗?而且源码中还充斥这这种判断。。。
react 15.6版本

阅读 1.7k
2 个回答

这些都是编译后生成的,且只有没混淆过的代码是这样的,UglifyJS 处理之后的代码会将这些删除。真正的源码应该是类似这样的:

if (process.env.NODE_ENV !== 'production'){}

这个版本的 React 默认是开发模式,如果发布需要指定 NODE_ENV。另外你可以通过 UglifyJS 将这些代码处理掉。或者你可以直接引用混淆过的代码:

const React = require('react/dist/react.min.js');

详情见:https://github.com/facebook/r...

有两种用处

  1. 官方开发的时候,作为调试使用,有更多的调试信息,生产环境的时候一般已经被删掉了
  2. 我们开发的时候,作为调试使用,有更多的调试信息,但是生产环境不推荐使用,有更多的消耗

我们自己做开发的时候也可以这么用,在开发环境输出调试信息,但是在生产环境就不再输出某些信息了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题