8 个版本 (破坏性更改)
0.8.0 | 2021 年 12 月 24 日 |
---|---|
0.7.1 | 2021 年 6 月 25 日 |
0.6.0 | 2021 年 5 月 26 日 |
0.5.0 | 2021 年 5 月 22 日 |
0.1.0 | 2021 年 5 月 16 日 |
#17 in #dotenv
3,445 每月下载次数
23KB
393 行
.zenv
用 Rust 编写的 Dotenv (.env) 加载器 🦀
✨ 特点
- 速度快,因为它是用 Rust 编写的
- 可以作为库/包或独立的命令行界面使用
- 支持变量扩展
🚀 安装
包
在 Cargo.toml
中添加您选择的版本 zenv
[dependencies]
zenv = "<version>" # Make sure it's the latest version
命令行界面
- 使用
cargo
cargo install zenv --features=cli
- Arch Linux
# Using `yay`
yay -S zenv
# Using `pamac`
pamac build zenv
- 从二进制文件中
请查看 发布页面 以获取不同操作系统的预构建二进制文件。
🤞 使用
包
fn main() {
zenv::Zenv::new(".env", false).configure().ok();
// or use macro, which expands to above statement
zenv::zenv!()
}
阅读完整文档
命令行界面
zenv
Dotenv (.env) loader written in rust
USAGE:
zenv [FLAGS] [OPTIONS] -- <binary> [args]...
FLAGS:
-v, --version Prints version
-h, --help Prints help information
-x, --expand Enable variable expansion
OPTIONS:
-f, --file Path to .env file
ARGS:
<binary> Command that needs to be executed
[args]... Arguments for the command
Examples:
zenv -f .env -- node index.js
zenv -f .env -- npm run dev
zenv -f .env -- terraform apply
🙌 知道这些很好
基本
PORT=5000
NODE_ENV=production
# Single and double quotes are also supported
S_QUOTE='single_quoted'
D_QUOTE='double_quoted'
注释
可以通过使用 #
字符来添加注释。
# COMMENTED=commented
AT_THE_END=comment_at_the_end # I am here
# If you want # in you value then wrap the value in single or double quotes
QUOTED="quote_#_quoted" # I'll be removed
换行符和转义
可以通过换行符(\n
)添加新行,但这仅在值被双引号包围时才有效。
PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nadflhsdlfsjkldfjklsdjf\n-----END RSA PRIVATE KEY-----"
# or like this
PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----
adflhsdlfsjkldfjklsdjf
asdffwejdjf983283lk
-----END RSA PRIVATE KEY-----"
如果您想转义换行符,可以使用转义符(\
)
ESCAPED="escaped\\nnew\\nline"
替换
Zenv
还支持变量替换(默认情况下关闭)从当前文件或从操作系统。替换仅在值为双引号时才有效,即 "
,可以通过以下方式实现
- 使用
${VAR}
模式(推荐) - 以
$
字符开始变量名,它在遇到非_
或字母数字字符后终止。
BASIC=basic
EXPANDED='${BASIC}_expanded' # expands to 'basic_expanded'
# System variables (assuming `PATH` is available)
SYSTEM_VARIABLE="${PATH},/this/is/new/path"
🙏 致谢
- motdotla/dotenv (JavaScript)
- joho/godotenv (Go)
- bkeepers/dotenv (Ruby)