Tengo dos entornos diferentes con nombres .env.development , .env.production y common .env también.
.env.development se ve así,
TEST_LABEL=Development .env.production se ve así,
TEST_LABEL=Production .env se ve así,
TEST_LABEL=ENV Y aquí está mi 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" },] ] }; }; estos son los scripts en 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" }, Y así es como lo usé en mi Homescreen.js
import {TEST_LABEL} from "@env" ... <Text>{TEST_LABEL}</Text> Y esto muestra siempre Development , incluso yo ejecuto el entorno de producción.
Ejecuto la aplicación como npm run development para el entorno de desarrollo, npm run production para el entorno de producción.
estoy usando react-native-dotenv
Aquí está la instantánea de la estructura del proyecto,
Encontré este problema y dice que los únicos entornos admitidos son development , production y test . Si desea utilizar otros nombres de entorno, puede utilizar la función experimental APP_ENV
"demo": "APP_ENV=demo expo start", "local": "APP_ENV=local expo start", y creo que los archivos .local se cargan de forma predeterminada
ACTUALIZAR
Probé su configuración y parece que este problema es la razón por la cual el valor no se actualiza, agregar -c a sus comandos borra el caché y carga los valores de env correctos
"development": "NODE_ENV=development expo start -c", "production": "NODE_ENV=production expo start -c",