React-native:检测开发或生产环境

Posted

技术标签:

【中文标题】React-native:检测开发或生产环境【英文标题】:React-native : detect dev or production env 【发布时间】:2016-03-22 18:45:05 【问题描述】:

我开发了一个 react-native 应用程序,应该在其中进行一些 API 调用。

如果我处于生产模式,我的应用应该调用,例如,这个主机:

https://example.com/

但如果我处于开发模式,它应该在不同的端口上调用我的本地主机,例如:

http://192.168.0.10:8080/

react-native 代码如何感知其环境?

.dotenv 似乎不适用于 react-native。

在 Chrome 调试中,我们可以看到应用程序是使用一些参数启动的:

Running application "AppName" with appParams: "initialProps":,"rootTag":1. __DEV__ === true, development-level warning are ON, performance optimizations are OFF

我们可以在应用程序中获取这个__DEV__ 值吗?

谢谢

【问题讨论】:

【参考方案1】:

自动设置

常量__DEV__是自动设置的。

生产

通过--dev=false 构建捆绑包应该取消设置__DEV__

用法

if (__DEV__) 
    console.log('Development');
 else 
    console.log('Production');

【讨论】:

好的,谢谢。你知道设置环境变量的方法吗? 不,抱歉。在我的项目中,我经常使用一个配置文件,它会导出一些常量,如 API Url。这对于创建应用的不同版本(例如测试版和生产版)很有用。 好的。我们完全不想要不同的构建。 另见Can react-native bundler detect unused files? 在RN中使用env文件你可以使用npmjs.com/package/react-native-dotenv包

以上是关于React-native:检测开发或生产环境的主要内容,如果未能解决你的问题,请参考以下文章

node配置运行环境变量;

十分钟完成Springboot 生产环境搭建代码仓库安装自动打包部署

nginx+uwsgi+virtualenv+django搭建django生产运行环境

weblogic-开发模式转变为生产模式&&生产模式转变为开发模式

Nuxt 如何在开发或生产环境中设置 baseURL

CloudKit:将容器环境从开发切换到生产