Estoy tratando de seguir un tutorial y dice:
Hay algunas formas de cargar credenciales.
- Cargado de variables de entorno,
- Cargado desde un archivo JSON en el disco,
Las claves deben ser las siguientes:
USER_ID, USER_KEY
... Esto significa que si configura correctamente sus variables de entorno, no necesita administrar las credenciales en su aplicación.
Basado en Google, parece que necesito establecer las variables en process.env
? ¿Cómo y dónde configuro estas credenciales? Ejemplo por favor.
fuente
fish
en lugar debash
, es necesario el uso:env USER_ID=239482 my_command
. Por ejemplo, para establecer variables de entorno para ladebug
biblioteca deenv DEBUG='*' node some_file.js
node.jsenv DEBUG=* node some_file.js
dotenv
se trata, ya que leerá su.env
archivo y lo aplicará.Recomiendo buscar en el paquete dotenv.
https://github.com/motdotla/dotenv
Es algo similar a la biblioteca sugerida en la respuesta de @Benxamin, pero es mucho más limpia y no requiere ningún script de bash. También vale la pena señalar que el código base es popular y está bien mantenido.
Básicamente necesita un archivo .env (que recomiendo que se ignore de su git / mercurial / etc):
Luego, en el archivo de entrada de la aplicación, ingrese la siguiente línea lo antes posible:
Auge. Hecho. 'process.env' ahora contendrá las variables anteriores:
El archivo '.env' no es obligatorio, por lo que no debe preocuparse de que su aplicación se caiga en ausencia.
fuente
Solo proporcione los valores env en la línea de comando
fuente
Puede establecer la variable de entorno a través de la variable global del proceso de la siguiente manera:
Funciona en todas las plataformas.
fuente
Si desea una opción de administración, pruebe el paquete envs npm. Devuelve valores de entorno si están establecidos. De lo contrario, puede especificar un valor predeterminado que se almacena en valores predeterminados globales variable de objeto si no está en su entorno.
El uso de archivos .env ("dot ee-en-vee") o de entorno es bueno por muchas razones. Las personas pueden administrar sus propias configuraciones. Puede implementar diferentes entornos (dev, stage, prod) en servicios en la nube con su propia configuración de entorno. Y puede establecer valores predeterminados razonables.
Dentro de su
.env
archivo, cada línea es una entrada, como este ejemplo:Usted debe no incluirá el
.env
en su control de versiones del repositorio (añadirlo a su.gitignore
archivo).Para obtener variables del
.env
archivo en su entorno, puede usar un script bash para hacer el equivalente deexport NODE_ENV=development
justo antes de iniciar su aplicación.Entonces esto va en su aplicación javascript:
fuente
Depende de su sistema operativo y su shell
En Linux con el shell bash , puede crear variables de entorno como esta (en la consola):
Para obtener más información sobre las variables de entorno en ubuntu (por ejemplo):
Variables de entorno en ubuntu
fuente
Como dijo ctrlplusb, te recomiendo que uses el paquete
dotenv
, pero otra forma de hacerlo es crear un archivo js y requerirlo en la primera línea de su servidor de aplicaciones.env.js:
app.js:
fuente
Usuarios de Windows: ¡presten atención! Estos comandos se recomiendan para Unix, pero en Windows son solo temporales. Establecen una variable solo para el shell actual, tan pronto como reinicie su máquina o inicie un nuevo shell de terminal, desaparecerán.
SET TEST="hello world"
$env:TEST = "hello world"
Para establecer una variable de entorno persistente en Windows, debe utilizar uno de los siguientes enfoques:
A) archivo .env en su proyecto : este es el mejor método porque significa que puede mover su proyecto a otros sistemas sin tener que configurar sus variables de entorno en ese sistema antes de que pueda ejecutar su código.
Cree un
.env
archivo en la raíz de su carpeta de proyecto con el contenido:TEST="hello world"
Escriba un código de nodo que lea ese archivo. Sugiero instalar dotenv (
npm install dotenv --save
) y luego agregarlorequire('dotenv').config();
durante el código de configuración de su nodo.process.env.TEST
Los archivos Env son una buena forma de mantener las claves de API y otros secretos que no desea tener en su base de código. Solo asegúrate de agregarlo a tu
.gitignore
.B) Use Powershell : esto creará una variable que será accesible en otros terminales. Pero tenga cuidado, la variable se perderá después de reiniciar su computadora.
[Environment]::SetEnvironmentVariable("TEST", "hello world", "User")
Este método se recomienda ampliamente en los foros de Windows, pero no creo que la gente sepa que la variable no persiste después de reiniciar el sistema ...
C) Use la GUI de Windows
fuente
Paso 1: Agregue sus variables de entorno a su archivo apropiado. Por ejemplo, se podría llamar a su entorno de ensayo
.env.staging
, que contiene las variables de entornoUSER_ID
yUSER_KEY
, específico de su entorno de ensayo.Paso 2: en su
package.json
archivo, agregue lo siguiente:luego llámelo en su script de despliegue de esta manera:
¡Configuración súper simple y funciona como un encanto!
Fuente: https://medium.com/@tacomanator/environments-with-create-react-app-7b645312c09d
fuente
Para los usuarios de Windows, esta pregunta y respuesta superior de Stack Overflow es bastante útil sobre cómo establecer variables de entorno a través de la línea de comandos
¿Cómo puedo configurar NODE_ENV = producción en Windows?
fuente
Encontré una buena herramienta para hacer esto.
nodo-env-archivo
Analiza y carga archivos de entorno (que contienen exportaciones de variables ENV) en el entorno Node.js, es decir
process.env
: utiliza este estilo:fuente
Como expansión de la respuesta @ctrlplusb,
te sugiero que también eches un vistazo al
env-dot-prop
paquete.Le permite establecer / obtener propiedades
process.env
usando adot-path
.Supongamos que su
process.env
contiene lo siguiente:Luego puede manipular las variables de entorno de esa manera:
Esto le ayuda a analizar las variables de entorno y usarlas como un objeto de configuración en su aplicación.
También lo ayuda a implementar una configuración de 12 factores .
fuente
A continuación se muestra una muy buena forma de hacer variables de entorno que he utilizado con éxito:
A. Tener diferentes archivos de configuración :
dev.js // esto tiene todas las variables de entorno solo para desarrollo
El archivo contiene:
stage.js // esto tiene todas las variables de entorno solo para desarrollo
qa.js // esto tiene todas las variables de entorno para pruebas de qa solamente
El archivo contiene:
NOTA : los valores están cambiando con el entorno, principalmente, pero las claves siguen siendo las mismas.
puedes tener más
z__prod.js // esto tiene todas las variables de entorno solo para producción / en vivo
NOTA: Este archivo nunca se incluye para su implementación
Ponga todos estos archivos de configuración en la carpeta / config /
NOTA : El nombre de prod es diferente a otros, ya que no sería usado por todos.
B. Establezca las variables de entorno OS / Lambda / AzureFunction / GoogleCloudFunction desde el archivo de configuración
Ahora, idealmente, estas variables de configuración en el archivo deben ir como variables de entorno del sistema operativo (o, variables de función LAMBDA, o, variables de función de Azure, Google Cloud Functions, etc.)
entonces, escribimos automatización en el sistema operativo Windows (u otro)
Supongamos que escribimos el archivo bat ' setenv ', que toma un argumento que es el entorno que queremos establecer
Ahora ejecuta " setenv dev "
a) Esto toma la entrada de la variable de argumento pasada ('dev' por ahora)
b) lee el archivo correspondiente ('config \ dev.js')
c) establece las variables de entorno en el sistema operativo Windows (u otro)
Por ejemplo,
Los contenidos de setenv.bat pueden ser:
Los contenidos de setenv.js pueden ser:
Eso es todo , su entorno está listo para usar.
Cuando hace ' setenv qa ', todas las variables de entorno qa estarán listas para usar desde qa.js, y listas para usar con el mismo programa (que siempre solicita process.env.someEnvKey1, pero el valor que obtiene es qa one).
Espero que ayude.
fuente
Haz tu vida más fácil con dotenv-webpack . Simplemente instálelo
npm install dotenv-webpack --save-dev
, luego cree un.env
archivo en la raíz de su aplicación (recuerde agregar esto.gitignore
antes que ustedgit push
). Abra este archivo y configure algunas variables ambientales allí, como por ejemplo:Ahora, en su configuración de paquete web, agregue:
Solo
const Dotenv = require('dotenv-webpack');
,plugins: [new Dotenv()]
y por supuestomodule.exports = webpackConfig; // Export all custom Webpack configs.
son obligatorios. Sin embargo, en algunos escenarios puede obtener algunos errores. Para estos, también tiene la solución que implica cómo puede corregir ciertos errores.Ahora, donde quieras, simplemente puedes usar
process.env.ENV_VAR_1
,process.env.ENV_VAR_2
,process.env.ENV_VAR_3
en su aplicación.fuente
Estaba indefinido después de configurar un sistema env var. Cuando pongo APP_VERSION en el usuario env var, entonces puedo mostrar el valor del nodo a través de process.env.APP_VERSION
fuente
Si está utilizando un mac / linux y desea recuperar los parámetros locales en la máquina que está utilizando, esto es lo que hará:
fuente