web-dev-qa-db-fra.com

React Native: process.env a seulement NODE_ENV

Je définis une variable d'environnement lors de la construction de mon application native native (sur Windows):

SET APP_ENV=dev & react-native run-Android

echo %APP_ENV% renvoie 'dev'

Mais lorsque j'enregistre l'objet process.env dans mon fichier JS, j'obtiens uniquement:

{
  NODE_ENV: "development"
}

Existe-t-il un moyen différent d'accéder aux variables d'environnement définies via l'invite de commande?

8
Supreet Totagi

Il est important de savoir que l'application React-Native s'exécute sur un appareil (ou émulateur) dans un environnement plus comme un navigateur , pas un Node.js processus.

Pour la compatibilité croisée avec les bibliothèques Node.js qui repose sur process.env.NODE_ENV pour effectuer des optimisations, React-Native ajoute la variable globale process avec env.NODE_ENV.

Si vous souhaitez passer des constantes personnalisées à React-Native, vous pouvez utiliser: https://github.com/luggit/react-native-config

5
lopezjurip

Vous devez installer ce plugin plugin babel

npm install babel-plugin-transform-inline-environment-variables --save-dev

Ajoutez-le ensuite à votre configuration babel (.babelrc, babel.config.js) dans la section plugin

{
  "plugins": [
    ["transform-inline-environment-variables", {
      "include": [
        "NODE_ENV"
      ]
    }]
  ]
}

Ensuite, lorsque vous passez la variable à travers l'inline comme

API_KEY=dev & react-native run-Android

Vous devriez réussir

process.env.API_KEY

Et la valeur sera dev

Ce travail pour moi sur le terminal Mac, j'espère qu'il répondra à votre question

2
Hussam Kurd