← 中文资源

简体中文版本

构建环境变量管理 CLI

完整 .env 语法解析、分层合并带来源报告、schema 校验,以及提交前的密钥形态扫描。

阅读英文原文

目标

构建支持引号、转义、注释、多行值的 .env 解析器,叠加文件、进程环境与 CLI 三层并追踪来源,按 schema 声明校验必需键与类型,并扫描暂存文件中形似密钥的值防止入库。

要点

解析是字符级状态机而非正则:单引号内不转义、双引号内反斜杠转义、注释只在值外生效、未闭合的双引号跨物理行续读 PEM;check 一次报出全部违规而非逐个失败三轮 CI;扫描器以锚定模式在文件字节上工作,用精确度换召回避免狼来了。

提示

007 这类前导零必须强制字符串类型——电话号码与邮编长得像数字;.dedupe 模式的屏蔽预览只给辨认不给复制。

验证

表驱动测试枚举全部引号与转义形态;植入各类密钥的 fixture 树逐行号断言命中且对压缩 JS 零误报。 项目目录骨架:

envm/
├── bin/envm.js
├── src/
│   ├── parser.js
│   ├── merge.js
│   ├── schema.js
│   └── scan.js
├── test/
│   ├── parser.test.js
│   └── scan.test.js
├── env.schema.json
└── package.json

实施阶段:Env file tokenizer and parser → Layered merge with origins → Schema check command → Secrets scanner。