【问题标题】:How to make npm script build correct environment?如何使 npm 脚本构建正确的环境?
【发布时间】:2018-03-07 21:55:18
【问题描述】:

我正在构建一个 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/ 错误。我需要更改哪些内容才能让我的构建脚本在正确的环境中工作?

【问题讨论】:

    标签: android node.js react-native react-native-android


    【解决方案1】:

    经过长时间的研究,我终于遇到了这个问题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
            }
    

    在 buildTypes 下。然后在 package.json 我创建了这个节点脚本

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2018-05-05
      • 2021-06-28
      • 2017-02-22
      • 1970-01-01
      相关资源
      最近更新 更多