@ bedrockio/ 配置
安装
npm install @bedrockio/config
哲学
当你装入配置时 require 这个包,不是当你发射时
进程。 这是故意选择 诺德的本地人 --env-file 旗帜.
--env-file 仅适用于一个记得通过的程序
这个 将工程装入两个触发器: 一些文件装入
自动( 任何配置库在导入时读取) 和仅装入
当右旗在命令行。 失败模式是安静的——a
"裸着" node script.js 仍然得到基础默认, 所以看起来它的工作,
却默默地错过了旗子上的每一层 节点有
(单位:千美元) 拒绝 自动加载
.env 默认情况下,所以每个调用旗的起落架不会消失.
装上整个级联在这里,上 require,删除拆分。 每个条目
点——服务器,一个工人,一个一次性的脚本——以同样的方式解析配置
没有旗帜可记.
文件级联
文件按顺序合并, 以后的文件获胜 :
.env——基础默认,承诺..env.${ENV_NAME}——每个环境覆盖(如:..env.production, (中文(简体) ), 承诺.ENV_NAME从外壳读取,或从底部读取.env若为 贝壳没有设置它..env.local——机器-局部重置,被打出,总是取胜.
真实的 process.env 值仍然胜过每个文件,所以
ENV_NAME=production node ... 既选择环境,又带走
优先级。 覆盖文件是基础文件的可选兄弟姐妹——无
,装入与读取相同 .env 一个人.
所有值被装入 process.env这是真理的唯一来源:
get编号 :has 和第三方图书馆读取 process.env
直接(哨兵,云SDKs等)也会看到你的配置. 宣告密钥
在任何文件中使其在环境中存在; 空声明被存储
作为空字符串,所以一个覆盖可以将基值去除 KEY=。 。 。 .
使用量
创建一个 .env 在您的工程根目录中的文件。 添加
新线上的环境变量,形式如下: NAME=VALUE。 。 。 .
例如:
DB_HOST=localhost
DB_PORT=2000
SENTRY_API=
START_DATE=2019-01-30T10:00:48.185Z
const config = require('@bedrockio/config');
db.connect({
host: config.get('DB_HOST'),
port: config.get('DB_PORT', 'number'),
});
// check if START_DATE is bigger than current time and SENTRY_API has value
if (config.get('START_DATE', 'date') < Date.now() && config.has('SENTRY_API')) {
sentry.init({
dsn: config.get('SENTRY_API'),
});
}
方法
起来
默认 : config.get('DB_HOST', "string"): string
如果变量未在.env中定义,或未通过.env提供,则返回变量的值或丢出错误 process.env。 。 。 .
config.get(
variable,
as?: "string" | "boolean" | "json" | "number" | "date"
): string | number | boolean | Date | any
已经
默认 : config.has('DB_HOST'): boolean
如果变量在 process.env (空声明数为有).
获取全部
默认 : config.getAll(): {[key: string]: string}
返回您 env 文件中声明的所有密钥为密钥/ 值对象, 从 process.env环境环境PATH)不包括在内.
获取公开
默认 : config.getPublic(): {[key: string]: string}
喜欢 getAll,但只有名称以公共前缀开头的已声明的密钥(APP_ 或者说 PUBLIC_ 默认时,可通过 ENV_PUBLIC_PREFIXES 环境变量,逗号分离).
环境变量 ENV CONFIG PATH
此变量允许您为您的 .env 文件设置不同的位置 .