目标
解析两个 .env 文件并把每个键归类为 only-in-left、only-in-right 或 changed 三类,输出只含键名不含值,因此可以安全贴进 issue 与评审。
要点
解析器处理 export 前缀、注释、单双引号包裹与行内注释;diff 输出三个桶各占一行。样例输出 DEBUG 仅在左侧、VERBOSE 仅在右侧、PORT 发生变化。
提示
demo 不打印值是刻意设计——键名即足够定位差异且不泄密。
验证
node –test 两个用例覆盖解析与分类;CLI 对示例文件输出三行差异,退出码为 0。 复现命令:
node --test envdiff.test.mjs
node envdiff.mjs base.env feature.env
预期输出要点:For a base and feature env file the CLI prints only-in-left, only-in-right, and changed sections with one key per line.
实测证据:Node 22.23.2: node –test -> 2 passed; CLI diff of base and feature env files printed only-in-left DEBUG, only-in-right VERBOSE, changed PORT.