检测生产与开发 在运行时做出反应

2022-08-30 02:21:12

是否有可能检测 React 的当前版本是在运行时开发还是生产?我想做这样的事情:

if (React.isDevelopment) {
  // Development thing
} else {
  // Real thing
}

答案 1

这最好通过公开来模拟Node使用构建工具(webpack,browserify)做事的方式。通常,您将在 prod 中将其设置为“production”,在 dev 中将其设置为“开发”(或未定义)。process.env.NODE_ENV

所以你的代码变成:

if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {
    // dev code
} else {
    // production code
}

有关如何设置它,请参阅 webpack 中启用或传递与环境相关的变量


答案 2

我使用一个帮助程序文件(在Typescript中):

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())
{
    ...
}