无需登录 数据私有 本地保存

本地依赖版本对比 - package.json分析

10
0
0
0

本地依赖版本对比 - package.json 分析

深度解析 package.json 依赖,对比版本差异,检查依赖健康度

输入 package.json
分析结果

请粘贴 package.json 内容并点击"分析依赖"

A项目 A - package.json
B项目 B - package.json
输入 package.json
Peer 依赖检查结果

请粘贴 package.json 并点击检查

依赖详情

常见问题与知识点

📦 什么是 package.json?

package.json 是 Node.js 项目的核心配置文件,记录了项目的元数据(名称、版本、描述等)、脚本命令以及所有依赖包的信息。它是 npm/yarn/pnpm 等包管理器识别和管理项目依赖的基础文件。

🔢 版本号前的 ^ 和 ~ 是什么意思?

^ (Caret):允许不改变最左边非零数字的更新。如 ^1.2.3 可更新到 ≥1.2.3 且 <2.0.0。
~ (Tilde):允许 patch 级别更新。如 ~1.2.3 可更新到 ≥1.2.3 且 <1.3.0。
无前缀:精确版本,锁定特定版本。
* 或 x:通配符,匹配任意版本(不推荐用于生产环境)。

⚖️ dependencies 和 devDependencies 的区别?

dependencies:生产环境必需的包,用户安装你的包时也会安装这些依赖。
devDependencies:仅在开发时需要的包(如测试框架、构建工具),用户安装你的包时不会安装它们。使用 npm install --production 可跳过 devDependencies。

🔗 peerDependencies 是什么?

peerDependencies(对等依赖)用于声明你的包需要宿主项目提供特定版本的依赖。例如,一个 React 组件库会声明 react 为 peerDependency,表示"你需要自己安装 React,我的组件才能正常工作"。npm v7+ 会自动安装 peerDependencies。

🔄 如何检查项目依赖是否过时?

可以使用 npm outdated 命令查看过时的依赖。也可使用本工具粘贴 package.json 后点击"检查更新",我们会查询 npm registry 获取每个包的最新版本并进行对比。定期更新依赖有助于获取安全补丁和新功能。

📋 package-lock.json 的作用?

package-lock.json 锁定了依赖的精确版本和依赖树结构,确保在不同环境中安装完全相同的依赖。它记录了每个包的具体版本、下载地址和完整性哈希值。应将其提交到版本控制系统中,以保证团队协作和 CI/CD 的一致性。

⚠️ 版本冲突如何解决?

当多个依赖要求同一包的不同版本时会发生冲突。解决方法:1) 使用 npm ls <包名> 查看依赖树;2) 使用 resolutions/overrides 字段强制统一版本;3) 更新相关依赖到兼容版本;4) 使用 --legacy-peer-deps 绕过 peer 依赖检查(临时方案)。

📊 语义化版本 (SemVer) 规范

版本格式:MAJOR.MINOR.PATCH(如 2.4.1)
MAJOR:不兼容的 API 修改(破坏性变更)
MINOR:向下兼容的功能新增
PATCH:向下兼容的问题修复
遵循 SemVer 能让开发者放心地使用 ^ 和 ~ 范围,自动获取安全的更新。