npm 运行 demo 没有指向演示

npm run demo doesn't pointing to demo

我有两个不同的环境,分别命名为 .env.development.env.production 和常见的 .env

.env.development 看起来像这样,

TEST_LABEL=Development

.env.production 看起来像这样,

TEST_LABEL=Production

.env 看起来像这样,

TEST_LABEL=ENV

这是我的 babel.config.js,

module.exports = function (api) {
  api.cache(true);
  return {
    presets: ['module:metro-react-native-babel-preset'],
    plugins: [
      ["module:react-native-dotenv",
        {
          "moduleName": "@env"
        },]
    ]
  };
};

这是package.json

中的脚本
"scripts": {
    "start": "react-native start",
    "development": "NODE_ENV=development expo start",
    "production": "NODE_ENV=production expo start",
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "web": "expo start --web",
    "eject": "expo eject",
    "test": "jest"
},

这就是我在 Homescreen.js

中使用它的方式
import {TEST_LABEL} from "@env"
...
<Text>{TEST_LABEL}</Text>

这总是显示 Development 即使我 运行 生产环境

我运行 应用喜欢 npm run development 用于开发环境,npm run production 用于生产环境。

我正在使用react-native-dotenv

这是项目结构快照,

我找到了这个issue and it says the only supported envs are development, production, and test. If you want to use other env names you can use the experimental featureAPP_ENV

    "demo": "APP_ENV=demo expo start",
    "local": "APP_ENV=local expo start",

我认为 .local 文件由 default

加载

UDPATE

我测试了您的配置,看起来 issue 是值未更新的原因,将 -c 添加到您的命令会清除缓存并加载正确的 env 值

    "development": "NODE_ENV=development expo start -c",
    "production": "NODE_ENV=production expo start -c",