11个稳定版本
1.3.0 | 2022年11月4日 |
---|---|
1.2.1 | 2022年11月3日 |
1.1.13 | 2022年10月3日 |
1.1.12 | 2022年9月30日 |
0.1.0 | 2022年8月22日 |
#963 在 开发工具
每月 35次下载
19KB
246 行
json_env
环境变量加载器
json_env
是 dotenv,但使用JSON。它从JSON文件(默认为.env.json
)加载环境变量,并使用它们启动子进程。将配置存储在环境变量中,与代码分离,是基于 十二因素应用方法。
如何安装
使用homebrew
$ brew tap brodo/json_env
$ brew install json_env
使用NPM
$ npm i -g @brodo/json_env
使用cargo
$ cargo install json_env
或者从 发布页面 下载您平台的二进制文件,并将它们放入您的 $PATH。
如何使用
只需将任何程序作为参数运行json_env
$ json_env my_program
传递给 json_env
的附加命令行参数将被转发到子进程
$ json_env echo "Test"
Test
示例
.env.json
{
"NODE_ENV": "DEV",
"MY_USER": "Carl",
"NUM_USERS": 10,
"nested": {
"hello": "world",
"boo": "far"
}
}
Shell
$ json_env env
MY_USER=Carl
NODE_ENV=DEV
NUM_USERS=10
nested={"boo":"far","hello":"world"}
[...]
环境变量扩展
您可以在env文件中包含现有的环境变量以进行扩展
.env.json
{
"MY_VAR": "$FOO",
"MY_OTHER_VAR": "User:$USER"
}
Shell
$ json_env -e env
FOO=Bar
MY_OTHER_VAR=User:Carl
MY_VAR=Bar
USER=Carl
[...]
JSON路径支持
在某些情况下,您已经在JSON文件中定义了环境变量,但不在根级别。以这个 Azure Function local.settings.json文件 为例
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "<language worker>",
"AzureWebJobsStorage": "<connection-string>",
"MyBindingConnection": "<binding-connection-string>",
"AzureWebJobs.HttpExample.Disabled": "true"
},
"Host": {
"LocalHttpPort": 7071,
"CORS": "*",
"CORSCredentials": false
},
"ConnectionStrings": {
"SQLConnectionString": "<sqlclient-connection-string>"
}
}
Values
属性包含我们感兴趣的环境变量。您可以使用此文件通过提供 JSON路径 .Values
使用 -p
标志来运行定义在 Values
中的 app.js
$ json_env -c local.settings.json -p .Values node app.js
使用多个配置文件
在某些情况下,使用多个配置文件是有意义的。例如,一个文件可以包含默认值并检查到您的版本控制系统中,另一个文件可以用来覆盖其中的一些值。
defaults.json
{
"SERVER_URL": "https://example.com/foo",
"USER": "TO_BE_OVERWRITTEN",
"PASSWORD": "TO_BE_OVERWRITTEN"
}
my_settings.json
{
"USER": "admin",
"PASSWORD": "hunter2"
}
使用多个 -c
标志来添加多个配置文件
$ json_env -c defaults.json -c my_settings.json env
PASSWORD=hunter2
SERVER_URL=https://example.com/foo
USER=admin
[...]
较后配置的文件会覆盖较早的文件。您也可以使用多个JSON路径,它们按顺序应用。
许可证
json_env 根据 Apache 2.0 许可证授权。
依赖项
~6–8MB
~147K SLoC