【发布时间】:2021-12-14 11:38:06
【问题描述】:
我有 NPM 脚本,可以使用模拟的后端数据(用于组件测试)构建和运行我们的应用程序。他们使用 cross-env npm 包将 ENV 设置为内联。
"android-mock": "cross-env MOCK_BACKEND=1 NODE_ENV=development node generate-config.js && react-native run-android -- --reset-cache", - 模拟器在 Windows 上运行
"ios-mock": "cross-env MOCK_BACKEND=1 NODE_ENV=development node generate-config.js && react-native run-ios -- --reset-cache", - 模拟器在 MacOS 上运行
Metro 捆绑器会查找 MOCK_BACKEND 环境并基于此解析路径,以便应用使用模拟数据而不是依赖后端来获取它。
问题:Metro 只能在捆绑 Android 应用时读取 process.env.MOCK_BACKEND 值,在 iOS 上,该值返回 undefined。
定义 ENV 以便 Metro 可以正确读取它们以用于 iOS 捆绑的正确方法是什么?
【问题讨论】:
标签: ios reactjs react-native environment-variables metro-bundler