gpt4 book ai didi

android - 如何让npm脚本构建正确的环境?

转载 作者:太空宇宙 更新时间:2023-11-04 01:59:50 24 4
gpt4 key购买 nike

我正在构建一个react-native项目,并使用react-native-config库在临时环境和生产环境之间切换。我在单独的 .env 文件(.env.dev、.env.staging、.env.prod)中定义了环境,并且在 package.json 中定义了以下 npm 脚本

"scripts": {
"android-dev": "ENVFILE=.env.dev react-native run-android",
"android-staging": "ENVFILE=.env.staging react-native run-android",
"android-prod": "ENVFILE=.env.prod react-native run-android",
"android-release": "react-native run-android --variant=release",
"build-android-staging": "export ENVFILE=.env.staging && cd android && ./gradlew assembleRelease && cd ..",
"build-android-prod": "export ENVFILE=.env.prod && cd android && ./gradlew assembleRelease && cd .."
}

在我的 build.gradle 中,我放置了以下内容

project.ext.envConfigFiles = [
debug: ".env.staging",
release: ".env.prod",
anycustombuildlowercase: ".env.staging",
]

我认为脚本和 build.gradle 代码之间存在冲突,因为当我运行 npm run build-android-staging 时它在生产环境中构建发布。如果我删除 build.gradle 中的代码并调用 api,我会收到 Fatal Exception: java.lang.IllegalArgumentException
unexpected url: undefinedapi/
错误。我需要改变什么才能让我的构建脚本在正确的环境中工作?

最佳答案

经过长时间的研究,我终于遇到了这个问题this issue有人准确地阐述了如何做到这一点。在 build.gradle 中,我必须添加

project.ext.envConfigFiles = [
debug: ".env.staging",
release: ".env.prod",
releaseStaging: ".env.staging", <---- THIS LINE
anycustombuildlowercase: ".env.staging",
]

并在同一个 build.gradle 文件中添加

releaseStaging {
minifyEnabled enableProguardInReleaseBuilds
useProguard enableProguardInReleaseBuilds
}

在构建类型下。然后在 package.json 中我创建了这个 Node 脚本

"android-release-staging": "react-native run-android --variant=releaseStaging".

现在我终于可以使用暂存创建生产版本了。

关于android - 如何让npm脚本构建正确的环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46430453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com