1.2.0 • Published 9 months ago
@eric-gitta-moore/env2file v1.2.0
env2file
本项目使用 Trae AI 工具编写,注意鉴别~
一个简单的工具,用于将环境变量内容写入文件。
A simple tool to write environment variables to files.
功能特点 | Features
- 支持将环境变量内容写入单个或多个文件
- 支持自动创建目标文件所需的目录结构
- 使用Base64编码确保特殊字符的正确传输
- 支持通过分号分隔多个写入指令
安装 | Installation
# 全局安装
npm install -g env2file
# 或者使用 npx
npx env2file
# 或者使用 pnpx
pnpx env2file使用方法 | Usage
环境变量格式 | Environment Variable Format
使用WRITE环境变量来指定写入指令,格式如下:
WRITE="[文件路径](Base64编码的内容)"内容支持以下三种格式:
1. Base64编码的直接内容:[文件路径](Base64内容)
2. 环境变量引用:[文件路径]($ENV_VAR),对应 process.env.ENV_VAR
3. Base64编码的环境变量内容:[文件路径](base64:$ENV_VAR),对应 Buffer.from(process.env.ENV_VAR).toString('base64')
多个写入指令可以用分号(;)分隔:
WRITE="[文件1](内容1的Base64);[文件2]($ENV_VAR2);[文件3](base64:$ENV_VAR3)"示例 | Examples
- 写入单个文件:
# 将"Hello World"写入test.txt
# 使用全局安装的命令
WRITE="[./test.txt](SGVsbG8gV29ybGQ=)" env2file
# 或者使用 npx
WRITE="[./test.txt](SGVsbG8gV29ybGQ=)" npx env2file
# 或者使用 pnpx
WRITE="[./test.txt](SGVsbG8gV29ybGQ=)" pnpx env2file- 写入多个文件:
# 同时写入两个配置文件
WRITE="[./config/db.json](eyJob3N0IjoibG9jYWxob3N0In0=);[./config/app.json](eyJwb3J0Ijo4MDgwfQ==)" env2file- 在CI/CD流程中使用:
# GitHub Actions示例
steps:
- name: Generate config files
run: |
WRITE="[./config.json]($(echo '{"key":"${{ secrets.API_KEY }}"}' | base64))" env2file开发指南 | Development Guide
开发环境要求 | Requirements
- Node.js >= 14.0.0
- npm >= 6.0.0
本地开发 | Local Development
# 克隆项目
git clone https://github.com/yourusername/env2file.git
# 安装依赖
npm install
# 运行测试
npm test测试 | Testing
项目使用 Jest 进行测试,测试文件位于 __tests__ 目录下。
# 运行测试
npm test
# 监听模式运行测试
npm run test:watch
# 生成测试覆盖率报告
npm run test:coverage编写测试时,请确保:
- 测试文件命名为
*.test.js - 覆盖主要功能和边界情况
- 提供清晰的测试描述
调试 | Debugging
- 本地调试:
# 设置环境变量并运行
WRITE="[./test.txt](SGVsbG8=)" node --inspect-brk ./bin/env2file.js- 使用 VS Code 调试:
- 在
.vscode/launch.json中配置调试设置 - 设置断点
- 使用 VS Code 调试面板运行
- 在
注意事项 | Notes
文件路径处理 | File Path Handling
- 支持相对路径和绝对路径
- 如果目标文件所在目录不存在,会自动创建
- Windows 系统下请使用正斜杠(/)或双反斜杠(\)作为路径分隔符
内容编码 | Content Encoding
- 内容必须是 Base64 编码的字符串
- 特殊字符(如换行符、引号等)需要先进行转义,再进行 Base64 编码
- 建议使用
Buffer.from(content).toString('base64')进行编码
多文件处理 | Multiple Files
- 多个写入指令之间使用分号(;)分隔
- 分号在文件内容中需要进行转义处理
- 建议每个写入指令占用单独一行,提高可读性
安全性 | Security
- 避免将敏感信息直接写入代码中
- 在 CI/CD 环境中使用加密的环境变量
- 注意文件权限设置
贡献指南 | Contributing
- Fork 项目
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
许可证 | License
MIT
1.2.0
9 months ago