J'essaie de suivre un tutoriel et il dit:
Il existe plusieurs façons de charger les informations d'identification.
- Chargé des variables d'environnement,
- Chargé à partir d'un fichier JSON sur le disque,
Les clés doivent être les suivantes:
USER_ID, USER_KEY
... Cela signifie que si vous définissez correctement vos variables d'environnement, vous n'avez pas du tout besoin de gérer les informations d'identification dans votre application.
Sur la base de quelques recherches sur Google, il semble que je doive définir les variables dans process.env
? Comment et où dois-je définir ces informations d'identification? Exemple s'il vous plaît.
la source
fish
lieu debash
, vous devez utiliser:env USER_ID=239482 my_command
. Par exemple, pour définir des variables d'environnement pour ladebug
bibliothèque de node.js :env DEBUG='*' node some_file.js
fishshell.com/docs/current/faq.html#faq-single-envenv DEBUG=* node some_file.js
dotenv
s'agit, car il lira votre.env
fichier et l'appliquera.Je recommande fortement de regarder dans le paquet dotenv.
https://github.com/motdotla/dotenv
C'est un peu similaire à la bibliothèque suggérée dans la réponse de @Benxamin, mais c'est beaucoup plus propre et ne nécessite aucun script bash. Il convient également de noter que la base de code est populaire et bien entretenue.
Fondamentalement, vous avez besoin d'un fichier .env (que je recommande fortement d'être ignoré de votre git / mercurial / etc):
Ensuite, dans votre fichier d'entrée d'application, insérez la ligne suivante le plus tôt possible:
Boom. Terminé. 'process.env' contiendra désormais les variables ci-dessus:
Le fichier '.env' n'est pas requis, vous n'avez donc pas à vous soucier de la chute de votre application en son absence.
la source
Fournissez simplement les valeurs env sur la ligne de commande
la source
Vous pouvez définir la variable d'environnement via la variable globale de processus comme suit:
Fonctionne sur toutes les plateformes.
la source
Si vous voulez une option de gestion, essayez le package envs npm. Il renvoie des valeurs d'environnement si elles sont définies. Sinon, vous pouvez spécifier une valeur par défaut qui est stockée dans une valeur par défaut globale variable d'objet par si elle ne se trouve pas dans votre environnement.
L'utilisation de fichiers .env ("dot ee-en-vee") ou d'environnement est bonne pour de nombreuses raisons. Les individus peuvent gérer leurs propres configurations. Vous pouvez déployer différents environnements (dev, stage, prod) sur des services cloud avec leurs propres paramètres d'environnement. Et vous pouvez définir des valeurs par défaut raisonnables.
Dans votre
.env
fichier, chaque ligne est une entrée, comme cet exemple:Vous ne devez pas inclure le
.env
dans votre référentiel de contrôle de version (ajoutez-le à votre.gitignore
fichier).Pour obtenir des variables du
.env
fichier dans votre environnement, vous pouvez utiliser un script bash pour faire l'équivalent deexport NODE_ENV=development
juste avant de démarrer votre application.Ensuite, cela va dans votre application javascript:
la source
Cela dépend de votre système d'exploitation et de votre shell
Sur linux avec le shell bash , vous créez des variables d'environnement comme ceci (dans la console):
Pour plus d'informations sur les variables d'environnement sur ubuntu (par exemple):
Variables d'environnement sur Ubuntu
la source
Comme l'a dit ctrlplusb, je vous recommande d'utiliser le package
dotenv
, mais une autre façon de le faire est de créer un fichier js et de l'exiger sur la première ligne de votre serveur d'applications.env.js:
app.js:
la source
Utilisateurs de Windows: faites attention! Ces commandes sont recommandées pour Unix mais sous Windows elles ne sont que temporaires. Ils définissent une variable pour le shell actuel uniquement, dès que vous redémarrez votre machine ou démarrez un nouveau shell de terminal, ils disparaîtront.
SET TEST="hello world"
$env:TEST = "hello world"
Pour définir une variable d'environnement persistante sous Windows, vous devez utiliser à la place l'une des approches suivantes:
A) Fichier .env dans votre projet - c'est la meilleure méthode car cela signifie que vous pouvez déplacer votre projet vers d'autres systèmes sans avoir à configurer vos variables d'environnement sur cette beore système, vous pouvez exécuter votre code.
Créez un
.env
fichier dans la racine de votre dossier de projet avec le contenu:TEST="hello world"
Écrivez un code de nœud qui lira ce fichier. Je suggère d'installer dotenv (
npm install dotenv --save
) puis d'ajouterrequire('dotenv').config();
pendant votre code de configuration de noeud.process.env.TEST
Les fichiers env sont un bon moyen de conserver les clés api et autres secrets que vous ne voulez pas avoir dans votre base de code. Assurez-vous simplement de l'ajouter à votre
.gitignore
.B) Utilisez Powershell - cela créera une variable qui sera accessible dans d'autres terminaux. Mais attention, la variable sera perdue après le redémarrage de votre ordinateur.
[Environment]::SetEnvironmentVariable("TEST", "hello world", "User")
Cette méthode est largement recommandée sur les forums Windows, mais je ne pense pas que les gens soient conscients que la variable ne persiste pas après un redémarrage du système ....
C) Utilisez l'interface graphique de Windows
la source
Étape 1: ajoutez vos variables d'environnement à leur fichier approprié. Par exemple, votre environnement de transfert pourrait être appelé
.env.staging
, qui contient les variables d'environnementUSER_ID
etUSER_KEY
, spécifique à votre environnement de transfert.Étape 2: dans votre
package.json
fichier, ajoutez ce qui suit:puis appelez-le dans votre script de déploiement comme ceci:
Configuration super simple et fonctionne comme un charme!
Source: https://medium.com/@tacomanator/environments-with-create-react-app-7b645312c09d
la source
Pour les utilisateurs de Windows, cette question de débordement de pile et la première réponse sont très utiles sur la façon de définir les variables d'environnement via la ligne de commande
Comment puis-je définir NODE_ENV = production dans Windows?
la source
Je suis tombé sur un bel outil pour le faire.
node-env-file
Analyse et charge les fichiers d'environnement (contenant les exportations de variables ENV) dans l'environnement Node.js, c'est
process.env
-à- dire - Utilise ce style:la source
En tant qu'extension de la réponse @ctrlplusb,
je vous suggère de jeter également un œil au
env-dot-prop
package.Il vous permet de définir / obtenir des propriétés à l'
process.env
aide d'undot-path
.Supposons que votre
process.env
contient les éléments suivants:Ensuite, vous pouvez manipuler les variables d'environnement comme ça:
Cela vous aide à analyser les variables d'environnement et à les utiliser comme objet de configuration dans votre application.
Il vous aide également à implémenter une configuration à 12 facteurs .
la source
Une très bonne façon de faire les variables d'environnement que j'ai utilisées avec succès est ci-dessous:
A. Avoir différents fichiers de configuration :
dev.js // contient toutes les variables d'environnement pour le développement uniquement
Le fichier contient:
stage.js // ceci a toutes les variables d'environnement pour le développement uniquement
qa.js // contient toutes les variables d'environnement pour le test qa uniquement
Le fichier contient:
REMARQUE : les valeurs changent avec l'environnement, principalement, mais les clés restent les mêmes.
vous pouvez en avoir plus
z__prod.js // cela a toutes les variables d'environnement pour la production / live uniquement
REMARQUE: ce fichier n'est jamais fourni pour le déploiement
Mettez tous ces fichiers de configuration dans le dossier / config /
REMARQUE : Le nom de prod est différent des autres, car il ne serait pas utilisé par tous.
B. Définissez les variables d'environnement OS / Lambda / AzureFunction / GoogleCloudFunction à partir du fichier de configuration
Maintenant, idéalement, ces variables de configuration dans un fichier devraient être utilisées comme variables d'environnement du système d'exploitation (ou, variables de fonction LAMBDA, ou, variables de fonction Azure, Google Cloud Functions, etc.)
donc, nous écrivons l'automatisation dans Windows OS (ou autre)
Supposons que nous écrivions le fichier de chauve-souris « setenv », qui prend un argument qui est l'environnement que nous voulons définir
Exécutez maintenant " setenv dev "
a) Cela prend l'entrée de la variable d'argument passée ('dev' pour l'instant)
b) lire le fichier correspondant ('config \ dev.js')
c) définit les variables d'environnement dans le système d'exploitation Windows (ou autre)
Par exemple,
Le contenu setenv.bat peut être:
Le contenu de setenv.js peut être:
C'est tout , votre environnement est prêt à l'emploi.
Lorsque vous effectuez ' setenv qa ', toutes les variables d'environnement qa seront prêtes à être utilisées à partir de qa.js et prêtes à être utilisées par le même programme (qui demande toujours process.env.someEnvKey1, mais la valeur qu'il obtient est qa one).
J'espère que cela pourra aider.
la source
Simplifiez-vous la vie avec dotenv-webpack . Installez-le simplement
npm install dotenv-webpack --save-dev
, puis créez un.env
fichier à la racine de votre application (n'oubliez pas de l'ajouter.gitignore
avant vousgit push
). Ouvrez ce fichier et définissez-y quelques variables d'environnement, comme par exemple:Maintenant, dans votre configuration webpack, ajoutez:
Seulement
const Dotenv = require('dotenv-webpack');
,plugins: [new Dotenv()]
et bien sûrmodule.exports = webpackConfig; // Export all custom Webpack configs.
sont requis. Cependant, dans certains scénarios, vous pouvez obtenir des erreurs. Pour ceux-ci, vous avez également la solution impliquant comment vous pouvez corriger certaines erreurs.Maintenant, où que vous voulez , vous pouvez simplement utiliser
process.env.ENV_VAR_1
,process.env.ENV_VAR_2
,process.env.ENV_VAR_3
dans votre application.la source
Je devenais indéfini après avoir défini un système env var. Lorsque je mets APP_VERSION dans la var User env, je peux afficher la valeur du nœud via process.env.APP_VERSION
la source
Si vous utilisez un mac / linux et que vous souhaitez récupérer des paramètres locaux sur la machine que vous utilisez, voici ce que vous allez faire:
la source