用途:扫描 node_modules 中的所有依赖包,生成许可证合规报告,用于审查项目依赖的开源许可情况。
主要能力:先用单次 bash 调用批量处理 package.json,解析 name、version、license 与 repository,并用正则匹配常见 SPDX 标识(如 MIT、ISC、Apache-2.0、GPL、AGPL、MPL 等)。许可证字段缺失时,会在包目录下查找 license/licence/copying 文件并按 SPDX 模式匹配;仍无法确定的记为 UNKNOWN。只有剩余的未知项才用 LLM 推断,且仅读取许可证文件前 500 字符(无许可证文件时读 README)。
使用方式:按三步工作流执行。第一步运行批量 bash 命令(含 SPDX 正则与 jq 解析),输出 name、version、license、repository 的 TSV,UNKNOWN 行进入第二步;第二步对每个 UNKNOWN 包做 SPDX 推断,从文件推断的结果追加 *;第三步按指定树形格式渲染报告,按 name@version 字母排序,无 repository 时省略该行,末尾输出统计行(Scanned、Confirmed、Inferred、Unknown)以及 copyleft 警告(GPL/LGPL/AGPL/MPL/EUPL)。
适用场景:需要快速了解 Node 项目第三方依赖许可证分布、排查 copyleft 风险,同时控制上下文开销的场景。
限制:依赖 bash、find、grep、jq 等工具环境;仅覆盖 node_modules(含作用域包)中可直接解析的许可证信息;非 SPDX 或无法识别的许可证会被标为 UNKNOWN;LLM 推断仅针对残余未知项且基于有限字符,可能需人工复核。原文未提供安装方式与平台支持等细节。