RawrXDA
Dotenv es apoyado por la comunidad.
Gracias espaciales a:Dotenv es un módulo de dependencia cero que carga las variables de entorno desde un archivo .env en process.env. El almacenamiento de la configuración del entorno separado del código está basado en la metodología The Twelve-Factor App.
# instalación local (recomendado)
npm install dotenv --save
O installación con yarn? yarn add dotenv
Cree un archivo .env en la raíz de su proyecto:
S3_BUCKET="YOURS3BUCKET"
SECRET_KEY="YOURSECRETKEYGOESHERE"
Tan prónto como sea posible en su aplicación, importe y configure dotenv:
require('dotenv').config()
console.log(process.env) // elimine esto después que haya confirmado que esta funcionando
.. o usa ES6?
import * as dotenv from 'dotenv' // vea en https://github.com/motdotla/dotenv#como-uso-dotenv-con-import
// REVISAR LINK DE REFERENCIA DE IMPORTACIÓN
dotenv.config()
import express from 'express'
Eso es todo. process.env ahora tiene las claves y los valores que definiste en tu archivo .env:
require('dotenv').config()
...
s3.getBucketCors({Bucket: process.env.S3_BUCKET}, function(err, data) {})
Si necesita variables de varias líneas, por ejemplo, claves privadas, ahora se admiten en la versión (>= v15.0.0) con saltos de línea:
PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----
...
Kh9NV...
...
-----END RSA PRIVATE KEY-----"
Alternativamente, puede usar comillas dobles y usar el carácter \n:
PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nKh9NV...\n-----END RSA PRIVATE KEY-----\n"
Los comentarios pueden ser agregados en tu archivo o en la misma línea:
# This is a comment
SECRET_KEY=YOURSECRETKEYGOESHERE # comment
SECRET_HASH="something-with-a-#-hash"
Los comentarios comienzan donde existe un #, entonces, si su valor contiene un #, enciérrelo entre comillas. Este es un cambio importante desde la versión >= v15.0.0 en adelante.
El motor que analiza el contenido de su archivo que contiene variables de entorno está disponible para su uso. Este Acepta una Cadena o un Búfer y devolverá un Objeto con las claves y los valores analizados.
const dotenv = require('dotenv')
const buf = Buffer.from('BASICO=basico')
const config = dotenv.parse(buf) // devolverá un objeto
console.log(typeof config, config) // objeto { BASICO : 'basico' }
Puede usar el --require (-r) opción de línea de comando para precargar dotenv. Al hacer esto, no necesita requerir ni cargar dotnev en el código de su aplicación.
$ node -r dotenv/config tu_script.js
Las opciones de configuración a continuación se admiten como argumentos de línea de comandos en el formato dotenv_config_<option>=value
$ node -r dotenv/config tu_script.js dotenv_config_path=/custom/path/to/.env dotenv_config_debug=true
Además, puede usar variables de entorno para establecer opciones de configuración. Los argumentos de línea de comandos precederán a estos.
$ DOTENV_CONFIG_<OPTION>=value node -r dotenv/config tu_script.js
$ DOTENV_CONFIG_ENCODING=latin1 DOTENV_CONFIG_DEBUG=true node -r dotenv/config tu_script.js dotenv_config_path=/custom/path/to/.env
Necesitaras agregar el valor de otro variable en una de sus variables? Usa dotenv-expand.
Vea ejemplos sobre el uso de dotenv con varios frameworks, lenguajes y configuraciones.
Dotenv expone dos funciones:
configuraciónanalizarConfiguración leerá su archivo .env, analizará el contenido, lo asignará a process.env,
y devolverá un Objeto con una clave parsed que contiene el contenido cargado o una clave error si falla.
const result = dotenv.config()
if (result.error) {
throw result.error
}
console.log(result.parsed)
Adicionalmente, puede pasar opciones a configuracion.
Por defecto: path.resolve(process.cwd(), '.env')
Especifique una ruta personalizada si el archivo que contiene las variables de entorno se encuentra localizado en otro lugar.
require('dotenv').config({ path: '/personalizado/ruta/a/.env' })
Por defecto: utf8
Especifique la codificación del archivo que contiene las variables de entorno.
require('dotenv').config({ encoding: 'latin1' })
Por defecto: false
Active el registro de ayuda para depurar por qué ciertas claves o valores no se inician como lo esperabas.
require('dotenv').config({ debug: process.env.DEBUG })
Por defecto: false
Anule cualquier variable de entorno que ya se haya configurada en su maquina con los valores de su archivo .env.
require('dotenv').config({ override: true })
El motor que analiza el contenido del archivo que contiene las variables de entorno está disponible para su uso. Acepta una Cadena o un Búfer y retornará un objecto con los valores analizados.