最近在用 dotENV ,于是做了一个支持多层的轮子
dotENV已经有很多模块,用得比较做的 dotenv, 但是都是只支持一维的,我试着弄了个多维的,也就几十行代码:
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 来描述需要定义哪些变量。 从线上部署的角度,还是会手动配置一次环境变量(容器的),之后都不会再操作。