react-native自定义依赖项上的环境变量

ena*_*upe 10 environment-variables react-native

我的项目有一个节点依赖,它依赖于要设置的环境变量,代码很简单const KEY = process.env.SOME_KEY.我知道react-native不支持传统的环境变量.

有什么可以满足这种需求并使此代码有效?假设我无法控制依赖项的代码.

Mik*_*ski 2

这里的解决方案非常简单,您应该使用自定义 babel 转换器,它将process.env.在转译步骤期间用真实的环境值替换代码中的所有调用(在该阶段可以访问环境变量)。转换还应用于应用程序的依赖项,这意味着您可以对第三方代码进行必要的修改,而无需实际更改它。

为此,您应该首先创建一个.babelrc如下所示的文件并将其放置在项目的根目录中:

{
  "presets": ["react-native"],
  "plugins": [
    "transform-inline-environment-variables"
  ]
}
Run Code Online (Sandbox Code Playgroud)

完成后,执行 npm installbabel-preset-react-nativebabel-plugin-transform-inline-environment-variables.

最后,重新运行react-native start(基本上是重新启动打包器),所有 process.env 调用都将被替换。