答案 0 :(得分:0)
我在想同样的事情!
在代码中,您可以使用__DEV__
全局标志来区分开发和生产“模式”。
Expo的Production开关不是处理环境开关(在您的情况下为Production和dev端点)的可靠方法。为什么? 2个主要原因:
如果您想灵活地针对拥有的生产端点运行应用程序,但仍然能够访问调试工具,该怎么办?你不能。
这是我的方法:我使用.env
个文件来处理环境切换。
有了Expo,我有了
.env
可以进行以下工作:
将babel-plugin-inline-dotenv添加到devDependencies:
npm install --save-dev babel-plugin-inline-dotenv
将
inline-dotenv
添加到了.babelrc:{ "plugins": ["inline-dotenv"] }
添加了一个
.env
文件:ENDPOINT="https://development"
.env
设置说明的荣誉转到jdrydn。
最后,在代码中使用环境变量:
<Text>{process.env.ENDPOINT}</Text>
另外,我还有一个文件.env-production
(从技术上来说,如果您想知道的话,我也有.env-staging
):
ENDPOINT="https://production"
真正的警告是当您要在生产环境中运行应用程序时。您需要:
.env-production
内容复制到.env
文件中。.env
次更改之间重新启动)。在Metro Bundler运行时,通过运行expo r -c
或在终端中按shift-r
重新启动并清除缓存,即可完成此操作。那是我找到的最理想的方法。
PS:如果要在应用程序的Dev和Production端点之间切换-我将只使用一个js文件,并为每个环境导出变量。