当前位置: 首页 > 知识库问答 >
问题:

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

漆雕稳
2023-03-14

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

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

共有2个答案

简滨海
2023-03-14

我使用一个帮助文件(在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())
{
    ...
}
方建明
2023-03-14

最好通过公开process.env.node_env来模拟使用构建工具--webpack、browserify进行操作的节点方式。通常,在prod中将其设置为“production”,在dev中将其设置为“development”(或未定义)。

因此您的代码变成:

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

有关如何设置它,请参见envify或Passing environment-dependent variables in webpack

 类似资料:
  • 在本地电脑上可以搭建一套学习与开发网站的运行环境。有很多一键安装的集成环境,比如 Windows 上的 WAMP ,macOS 上的 MAMP。这些集成环境可以让你快速开始,但是不够灵活,也存在很多问题。更重要的是我们并没学到什么,我推荐可以先在本地用虚拟机的方式去手工搭建一个 LEMP 环境。 本书会利用 Vagrant 管理虚拟机,创建一台 Linux 类型的虚拟机,在上面手工去安装并配置环境

  • 这似乎很容易,但我找不到任何解决办法。 那么,如何检查我的应用程序是运行在生产模式还是开发模式?

  • 数据库 默认情况下,Tendermint使用 syndtr/goleveldb 包作为其进程内键值数据库。不幸的是,LevelDB 的这个实现似乎在重载下受到了影响(参见#226)。最好安装 LevelDB 的真正 c 实现,并使用 make build_c 编译 Tendermint。有关详细信息,请参阅安装说明。 Tendermint 在 $TMROOT/data 中保存多个不同级别的 db

  • 更新时间:2019-08-31 11:22:33 服务分为生产环境与开发环境,未发布的服务认为是在开发环境,发布后的服务为生产环境的服务。生产环境的服务才可以在web工作台,或代码工程内调用。生产环境的服务不可再进行修改,需要在开发环境中修改部署发布服务后,才可生效。 服务运维监控功能是为生产环境的服务提供的,您可以在此查看生产环境服务的调用量及运行日志。

  • 在我的另一个问题之后,我有一个UDP服务器参与者,如下所示: 我正在根据数据从何处发送来创建子角色。这样做的原因是子参与者保持一些内部状态。内部状态包括上次连接时间、发送的数据包总数等 我想设置TestProbe来测试它 来自remoteA的数据被转发到TestProbeA 来自remoteB的数据被转发到TestProbeB 来自remoteA的数据不会转发到TestProbeB 我已经阅读了使

  • 我正在使用vscode和一个物理的android设备,在react-本地上开发一个android应用程序,它在尝试使用npx react-本地运行android构建时一直显示下面的错误。 这种情况经常发生在我开始一个新项目的时候,通常需要开始一个新项目来解决这个错误。 这些是我试图解决错误的几件事。 试过了/gradlew清理并再次尝试构建应用程序 已启用多索引已在应用程序/内部版本中启用。格拉德