Puede actualizarlo porque es solo un objeto normal. Un objeto poblado al inicio por el tiempo de ejecución, pero por lo demás no es diferente de ningún otro objeto JS.
En cuanto a los casos de uso prácticos, sí, hay docenas. Varias bibliotecas de terceros utilizan variables de entorno para extraer indicadores de tiempo de ejecución. Bluebird busca BLUEBIRD_DEBUG
y BLUEBIRD_LONG_STACK_TRACES
. Newrelic puede extraer toda su configuración completamente de NEW_RELIC_LICENSE_KEY
como NEW_RELIC_LICENSE_KEY
. Cientos de bibliotecas leen NODE_ENV
para el comportamiento predeterminado (por ejemplo: express deshabilita los seguimientos de pila en el controlador de errores predeterminado y activa el almacenamiento en caché de vista cuando NODE_ENV
está configurado en “producción”)
Esto hace que sea extremadamente fácil controlar estos comportamientos al comienzo de un script. Por ejemplo, su conjunto de pruebas puede deshabilitar explícitamente newrelic configurando process.env.NEW_RELIC_ENABLED = 'false'
. Si usa el módulo de configuración de nodo, podría configurar una configuración de entorno específicamente para ese conjunto de pruebas y codificar sus pruebas para usar siempre ese entorno.
- ¿AngularJS sería estable después de 5 años?
- ¿Qué debo saber para construir un sitio web como quora.com?
- ¿Es posible crear un raspador web personalizado que no dependa de la fuente?
- ¿Cuáles son algunos buenos sitios web para los entusiastas de GIF?
- ¿Cuál es el proceso de desarrollo de un sitio web desde el principio hasta el final?
Cambiando eso, podría poner una sección env: {}
en sus archivos de configuración y hacer Object.assign(process.env, config.env)
para mezclar valores específicos del entorno que no desea configurar en los cuadros reales .
Siempre y cuando no tenga expectativas de que modificar el objeto realmente alterará el entorno del shell, es muy útil mutar.