使用react-native-dotenv在RN中切换环境变量

react-native-dotenv: https://github.com/goatandsheep/react-native-dotenv

以下 以Typescript 为例
使用步骤

  1. yarn add react-native-dotenv
  2. yarn add -D @types/react-native-dotenv
  3. 在babel.config.js文件中 plugins 字段中
[
      "module:react-native-dotenv",
      {
        moduleName: "@env",
        path: ".env",
        safe: false,
        allowUndefined: true,
      },
    ],
  1. 在需要的地方
import {API_URL} from '@env'

console.log(API_URL)
  1. 在根目录下的.env 文件中
    API_URL=http://XXXX.com

  2. 创建env.d.ts文件 在一个目录下,如/types

  3. 在tsconfig.json 中添加 指定定义的文件路径

"typeRoots": ["./types"] ,

和compilerOptions 同级

问题点:
在react-native-dotenv 3.3.1版本时,(估计之前版本也有或者是RN的问题)
iOS打Production包时,无法读取到.env文件
参考: 这个issue https://github.com/goatandsheep/react-native-dotenv/issues/38

虽说是Closed,但好像还有问题,
参考其中一个方法:
对于 iOS,把.env文件 拷贝一个到 /ios目录下,这样就能读取到了。
cp .env ios/cp .env.production ios/

暂时解决

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容