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?
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
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