2 个版本 (1 个稳定版)
1.0.0 | 2024年7月1日 |
---|---|
0.1.0-beta.0 | 2023年9月23日 |
#194 in 开发工具
11KB
140 行
env-yoink
env-yoink
是一个多功能的命令行工具,用 Rust 编写,简化了从源代码中提取环境变量的过程。无论您正在处理用 JavaScript、Go、Python 或任何其他编程语言编写的代码,env-yoink
都提供了一个方便的方式来识别和收集环境变量引用。您可以使用它来提高您的开发工作流程并管理配置。
功能
-
正则表达式和语言预设:
env-yoink
允许您使用正则表达式或预定义的语言预设来提取环境变量。 -
多语言支持:内置对 JavaScript、Go、Python 等流行编程语言的内置支持。
-
递归扫描:使用惊人的 ripgrep,轻松递归扫描整个项目或目录,同时尊重
.gitignore
文件,确保不会错过任何环境变量引用,即使在复杂的代码库中。
安装
目前,安装 env-yoink
的最佳方式是通过 cargo
命令。请确保您的机器上已安装 Rust,然后运行
cargo install env-yoink
其他包管理器
平台特定的安装方法将很快在各个平台上提供(Homebrew、pacman、APT 等...)
即将推出...
用法
文档
env-yoink --help
Tool to grab (yoink) env variables from a workspace into env example file
Usage: env-yoink [OPTIONS] <WORKSPACE_DIRECTORY>
Arguments:
<WORKSPACE_DIRECTORY> Workspace Directory
Options:
-o, --out <OUTPUT_DIRECTORY>
Output Directory [default: ./]
-e, --example-file-name <EXAMPLE_FILE_NAME>
Env example file [default: .env.example]
-x, --regex-pattern <REGEX_PATTERN>
Custom Regex pattern to capture the env variables
-p, --preset <PRESET>
Use from the list of regex presets based on the language [possible values: js, python, rust, go]
-h, --help
Print help
-V, --version
Print version
预设模式
env-yoink './src' --preset js
正则表达式模式
env-yoink './src' --regex-pattern 'process.env.([A-Z_]+)'
示例
假设我们在项目目录中有一个这样的文件。
// my-project/config.ts
// Get the env variables
const API_URL = process.env.API_URL;
const SECRET_KEY = process.env['SECRET_KEY']; // This incosistency is intentional and for demo purposes only, relax :)
// Initialize the client
const client = new Client(API_URL, SECRET_KEY);
// Call the API...
在项目目录中运行
env-yoink . --preset=js
这将写入文件 .env.example
(默认情况下),如下所示
# .env.example
API_URL=
SECRET_KEY=
路线图
- 更多预设(Deno、Java、C# 等...)
- 通过不同的包管理器提供 CLI 工具
- 区分已注释的代码
- 追加
.env.example
而不是覆盖它 - 添加 dry-run 选项
- 详细模式
- 编写测试
- 扩展功能以提供使用 dotenv-linter 的代码风格检查
- 优化性能
- 更多...
贡献
欢迎并感谢 pull requests 😄。
对于重大更改,请先提出一个 issue 以讨论您想更改的内容。
许可证
依赖项
~9–18MB
~292K SLoC