# package.json 依赖审计器

审计 package.json 的依赖卫生、版本范围质量，并可选地从 package-lock.json 或 yarn.lock 深入检查传递依赖树。会标记重复依赖、通配符或预发布版本、未排序键、缺失元数据，以及运行时/开发时依赖误分类问题。

> 标准页面: https://elysiatools.com/zh/tools/package-json-dependency-auditor

- **分类:** Development

- **关键词:** package.json, 依赖审计, package-lock, yarn lock, 依赖树, semver, 重复依赖, 版本范围, node.js, 前端, linter, 代码审查, engines, license, 依赖卫生

## 概述

面向 Node.js / 前端工程师、库作者与 code review 的 package.json 审计器：

1. 粘贴 package.json 内容。
2. 选择严格程度：严格标记所有问题，标准是合理默认，宽松只关注严重问题。
3. 版本分析会识别每个依赖声明的策略（caret / tilde / exact / wildcard / workspace / alias / git-url / comparator），并在可行时给出最小可满足版本。
4. 深度探索是可选的：粘贴 package-lock.json 或 Yarn v1 yarn.lock 后，可解析传递依赖与依赖树。
5. 报告包含等级摘要、发现列表、版本策略表、可选依赖表，以及可选的解析依赖树。

离线优先：没有 lockfile 时仍可审计 direct dependencies，但不会猜测 transitive 解析结果。

## 输入项

- **package.json 内容** (textarea): { "name": "my-app", "dependencies": { ... } }
- **严格程度** (select)
- **显示依赖表** (checkbox)
- **锁文件类型** (select)
- **锁文件内容（可选）** (textarea): { "lockfileVersion": 3, ... } or yarn.lock text
- **显示依赖树** (checkbox)
- **依赖树深度** (number)

## 适用场景

- 在进行代码审查（Code Review）或项目重构，需要评估和清理项目依赖项时。
- 当项目构建变慢或出现依赖冲突，需要排查是否存在重复依赖或不合理的版本范围（如通配符 *）时。
- 在发布 npm 包或交付项目前，需要确保 package.json 的元数据完整且依赖分类（dependencies 与 devDependencies）正确时。

## 工作原理

- 粘贴 package.json 的内容，并根据需要选择严格程度（严格、标准或宽松）。
- （可选）粘贴 package-lock.json 或 yarn.lock 内容，并设置依赖树的解析深度。
- 系统自动解析依赖声明策略（如 caret、tilde、exact 等），并计算出最小可满足版本。
- 生成包含等级摘要、发现列表、版本策略表以及可视化依赖树的审计报告。

## 使用案例

- 检查 package.json 中是否存在未排序的键、缺失的 engines 或 license 字段，规范项目配置。
- 识别并替换依赖项中的通配符（*）或预发布版本，避免生产环境构建引入不确定性。
- 结合锁文件生成可视化的依赖树，快速定位深层传递依赖中的冗余或冲突版本。

## 常见问题

### 如果没有锁文件（lockfile），我还能使用这个工具吗？

可以。在没有锁文件的情况下，工具仍会审计 package.json 中的直接依赖，但无法解析和展示传递依赖树。

### 严格程度选项（Strictness）有什么区别？

“严格”会标记所有潜在问题；“标准”提供合理的默认警告；“宽松”则只关注严重的依赖冲突或错误。

### 工具支持哪些锁文件格式？

支持 npm 的 package-lock.json 和 Yarn v1 的 yarn.lock 文件。

### 它是如何识别重复依赖的？

工具会对比 dependencies 和 devDependencies，或者在解析锁文件时查找被多次引入且版本不一致的相同依赖包。

### 我的 package.json 数据会被上传到服务器吗？

不会。本工具采用离线优先设计，所有依赖审计和解析过程均在您的浏览器本地完成，确保代码安全。

## 相关工具

- [JWK 生成与解析器](https://elysiatools.com/zh/tools/jwk-generator): 生成 RSA、EC（P-256/P-384/P-521/secp256k1）与 OKP（Ed25519/Ed448/X25519/X448）的 JSON Web Key，或解析已有 JWK 以查看参数、指纹与元信息
- [SQL 执行计划可视化器](https://elysiatools.com/zh/tools/sql-explain-plan-visualizer): 粘贴 EXPLAIN / EXPLAIN ANALYZE 输出（PostgreSQL/MySQL/SQLite），渲染为成本树，标注估算行数与实际行数的偏差热点，并给出具体的索引建议
- [GraphQL Playground](https://elysiatools.com/zh/tools/graphql-playground): 浏览器内的 GraphQL 客户端：编写查询与变量，发送到任意 GraphQL 端点，查看格式化的 JSON 结果或错误数组——开发阶段快速迭代 Schema 的理想工具
- [Tailwind 色板同步器](https://elysiatools.com/zh/tools/tailwind-color-palette-sync): 输入一组 HEX,选择命名规则(色阶 50–950 / 单名 / 对象嵌套),自动生成 tailwind.config.ts 的 theme.extend.colors 片段,每个色阶同时给出 WCAG AA/AAA 对比等级,可选暗色模式。
- [ECharts 主题 Token 抽取器](https://elysiatools.com/zh/tools/echarts-theme-token-extractor): 从 ECharts 主题 JSON 抽取设计 token——颜色、数字、字号与字符串——并直接导出到你的设计系统。粘贴一个主题对象（即通过 echarts.init(dom, themeName) 注册的那种），工具遍历每个叶子节点，为每个颜色（可选地将命名色/rgb 规范化为 hex）、间距数字、字号与字符串打标，然后输出干净的 CSS 变量、Tailwind theme.extend 配置、Style Dictionary tokens.json 或 SCSS 变量。在 ECharts 可视化主题与 Figma/CSS/Tailwind 设计 token 之间架桥，无需逐个手抄。
- [图片调色板转设计令牌](https://elysiatools.com/zh/tools/image-to-design-tokens): 从图片中用 k-means 聚类提取主色，导出为 CSS 变量 / SCSS 变量 / Tailwind 配置 / JSON 设计令牌，并自动为每个颜色生成命名色阶
- [短链 + UTM + 二维码一体构建器](https://elysiatools.com/zh/tools/short-url-utm-builder-qr-bundle): 一次输入替代 bit.ly + Google Campaign Builder + 二维码生成器三件套：输入落地页与 UTM 参数（GA4 必填三件套强制校验、可选小写规范化），生成完整追踪 URL；在自有短链域名上生成确定性 base62 slug（FNV-1a 哈希，同样输入永远同样 slug，无需联网注册），输出短链与完整链两张二维码 PNG，并附带 nginx / vercel.json / Netlify 重定向配置与营销追踪表 CSV 行。
- [时间序列预测与季节性分析](https://elysiatools.com/zh/tools/time-series-forecast-seasonality-analyzer): 从 CSV 或 JSON 时间序列数据中预测未来数期，并在一份报告中查看趋势、季节项和残差分解

## 示例

- [Terraform Plan JSON 样本](https://elysiatools.com/zh/samples/terraform-plan-json-samples): 用于依赖可视化和变更审查的 Terraform plan JSON 文件样本，贴近 terraform show -json 输出结构
- [pnpm 包管理器示例](https://elysiatools.com/zh/samples/pnpm): 快速、节省磁盘空间的包管理器示例，包括monorepo管理、工作区配置和高级工作流
- [聊天记录 JSON 示例](https://elysiatools.com/zh/samples/chat-transcript-json): 多角色聊天记录的 JSON 示例
- [JSON 示例](https://elysiatools.com/zh/samples/json): JSON（JavaScript 对象表示法）格式示例，从简单到复杂结构

## 相关内容

- [API 版本演进、破坏性变更与发布就绪审查工具](https://elysiatools.com/zh/hubs/api-versioning-breaking-change-review): 把 API 版本对比、破坏性 schema 变化识别、真实响应兼容性验证、semver 与 changelog 审查放进同一个发布前专题。
- [JSON 交换与格式翻译工具](https://elysiatools.com/zh/hubs/json-convert): 在一个专题里比较 JSON 与 CSV、YAML、TOML、GraphQL、XML、Markdown、Excel、BSON、EDN 等结构化格式之间的转换工具。
- [JSON 检查、对比与转换工具](https://elysiatools.com/zh/hubs/json-utility): 把 JSON 格式化、差异对比、路径检查、Schema 校验、合并、转换和导出工具集中到一个专题中，适合 API 与数据处理流程。
- [JSON Schema、Mock 数据与 API 夹具生成工具](https://elysiatools.com/zh/hubs/json-generate): 围绕JSON Schema 生成、Mock 负载构建与 API 夹具准备整理的一组工具。
