最近在用 dotENV ,于是做了一个支持多层的轮子
发布于 8 年前 作者 captainblue2013 6145 次浏览 来自 分享

dotENV已经有很多模块,用得比较做的 dotenv, 但是都是只支持一维的,我试着弄了个多维的,也就几十行代码:

先放地址 https://github.com/captainblue2013/dotenvR


Install

npm install dotenvr --save

Usage

var config = require('dotenvr').load(); //默认当前路径 .env 
//var config = require('dotenvr').load('/path/of/your/.env');

Example

.env

 APP = demo
 A.B.C = 123

var config = require(‘dotenvr’).load(); // also see process.env

 {
     APP:'demo',
     A:{
         B:{
             C:123
         }
     }
 }
4 回复

多维环境变量的使用场景是怎样的?

@lijy91 其实就是类似JS对象这样,简化一下KEY的命名, 比如这样, DB.MASTER.HOST=127.0.0.1 DB.MASTER.PORT=3306

DB.SLAVE.HOST=127.0.0.1 DB.SLAVE.PORT=3307

dotenv 本地使用这个,同时不让提交git 仓库,那线上怎么弄呢?线上 也需要这些环境变量

@yangchongduo 是这样的,代码仓库的角度,我们还会提交一份 .env.example 来描述需要定义哪些变量。 从线上部署的角度,还是会手动配置一次环境变量(容器的),之后都不会再操作。

回到顶部