是否有可能在运行时检测当前版本的React是开发还是生产?我想做这样的事情:
if (React.isDevelopment) {
// Development thing
} else {
// Real thing
}
答案 0 :(得分:74)
最好通过展示process.env.NODE_ENV
来模拟Node使用构建工具(webpack,browserify)进行操作的方式。通常,您将其设置为" production"在prod和"开发" (或未定义)在开发中。
所以你的代码变成了:
if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {
// dev code
} else {
// production code
}
有关如何设置的信息,请参阅envify或Passing environment-dependent variables in webpack
答案 1 :(得分:3)
我想从index.html访问此文件,并希望找到一种不涉及弹出webpack或使用其他模块进行配置的解决方案,而我想到了这一点。
来源是David's answer above和create-react-app documentation for using environment variables in the html file
if ( ! '%NODE_ENV%' || '%NODE_ENV%' === 'development') {
// dev code
} else {
// production code
}
答案 2 :(得分:1)
我使用帮助文件(在打字稿中):
import process from "process";
const development: boolean = !process.env.NODE_ENV || process.env.NODE_ENV === 'development';
export default function isDev(): boolean
{
return development;
}
然后我在其他地方这样使用它:
import isDev from "./helpers/DevDetect";
if (isDev())
{
...
}