React开发构建与生产构建有所不同,例如错误处理方式。
可以通过环境变量来确定使用的是哪个版本,但这仅适用于模块化环境,因为React包中使用了process.env.NODE_ENV
:
if (process.env.NODE_ENV === 'production') {
module.exports = require('./cjs/react.production.min.js');
} else {
module.exports = require('./cjs/react.development.js');
}
process.env
可能不适用的情况是 React 作为 UMD 模块全局使用时,window.React
和 window.ReactDOM
的情况:
<script src="some-unknown-react-version.js"></script>
<script>
React // is it in production mode?
</script>
可能的用途包括:
一个可以在模块化和全局环境中使用的组件(以UMD形式发布),并在生产中呈现不同结果。
浏览器扩展或用户脚本,其中构建/生产模式是从
React
或ReactDOM
对象检测到的。
如何在运行时准确地检测React开发/生产构建,而不需要借助环境?
我正在寻找可靠且清晰的解决方案,如果可能的话,适用于React 15和React 16。
这不是类似问题的重复,因为现有答案是通过process.env
解决问题的。