Sup*_*agi 5 javascript environment-variables node.js reactjs react-native
我在构建本机应用程序时(在Windows上)设置环境变量:
SET APP_ENV=dev & react-native run-android
Run Code Online (Sandbox Code Playgroud)
echo %APP_ENV% 返回'dev'
但是,当我在JS文件中记录process.env对象时,只会得到:
{
NODE_ENV: "development"
}
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以访问通过命令提示符设置的环境变量?
小智 5
重要的是要知道React-Native应用程序正在更像浏览器而不是Node.js进程的环境中的设备(或仿真器)上运行。
为了与依赖于process.env.NODE_ENV执行优化的Node.js库实现交叉兼容性,React-Native将process全局变量添加为env.NODE_ENV。
如果要将自定义常量传递给React-Native,可以使用:https : //github.com/luggit/react-native-config
你应该安装这个插件 babel 插件
npm install babel-plugin-transform-inline-environment-variables --save-dev
Run Code Online (Sandbox Code Playgroud)
然后将其添加到插件部分的 babel 配置(.babelrc、babel.config.js)中
{
"plugins": [
["transform-inline-environment-variables", {
"include": [
"NODE_ENV"
]
}]
]
}
Run Code Online (Sandbox Code Playgroud)
然后当你通过内联传递变量时
API_KEY=dev & react-native run-android
Run Code Online (Sandbox Code Playgroud)
你应该通过
process.env.API_KEY
Run Code Online (Sandbox Code Playgroud)
价值将是 dev
这在 Mac 终端上对我有用,希望它能回答你的问题