不喜欢广告? 无广告 今天

package.json 格式化与键排序工具

数据开发人员
广告 移除?
验证和建议将在此处显示。
广告 移除?

指导

package.json 格式化器与键排序器

package.json 格式化与键排序工具

粘贴任何 package.json 以获得一个干净且标准排序的版本,立即返回。此工具将顶层键重新排序为标准 npm 序列(name、version、description、scripts、dependencies 等),验证必需和推荐字段,检查依赖项版本范围,并标记那些使清单杂乱的非标准键。所有操作都在您的浏览器中完成——没有任何内容被上传。

如何使用

  1. 将您的 package.json 到输入区域(或点击“尝试示例”以查看工具的实际效果)。
  2. 选择您偏好的缩进样式:2个空格、4个空格或制表符。
  3. 可选地启用依赖组的字母顺序排序以及脚本的生命周期感知排序。
  4. 如果希望删除未知的顶层键,请切换“移除非标准字段”。
  5. 查看右侧的格式化输出以及包含错误、警告和备注的验证报告。
  6. 复制结果或直接下载为 package.json.

特征

  • 标准键顺序 — 顶层字段已重新排序为标准 npm 序列,以确保差异和代码审查的一致性。
  • 必需和推荐字段检查 — 标记缺失 name/version 和推荐条目如 description, license,并且 repository.
  • 版本范围验证 — 验证每个条目在 dependencies, devDependencies, peerDependencies,并且 optionalDependencies 使用有效的语义版本范围(caret、tilde、范围、工作区协议等)。
  • 依赖项排序 — 可选地对每个依赖组进行字母排序,以获得可预测的锁文件友好输出。
  • 生命周期感知脚本排序 — 将 preX/X/postX npm 生命周期脚本分组在一起,然后按字母顺序排序其余部分。
  • 移除非标准字段 — 移除未知的顶层键以保持清单简洁,或保留它们(它们会被移到底部)。
  • 缩进控制 — 输出使用 2 个空格、4 个空格或制表符,以匹配项目的格式规则。
  • 仅客户端 — 解析、验证和重新排序完全在您的浏览器中运行。没有任何内容被传输。

常问问题

  1. 为什么 package.json 中键的顺序很重要?

    JSON 规范将对象视为无序,但在实际使用中,键的顺序会影响人类可读性、拉取请求中的差异清晰度以及各种工具如何呈现该文件。一个标准顺序——由 npm CLI 推广并被生态系统工具广泛采用——将标识字段(name、version)放在前面,接着是元数据、入口点,最后是依赖项和配置块。一致的顺序减少了合并冲突,并使清单更易于扫描。

  2. 什么是语义版本,为什么版本范围语法很重要?

    语义版本(semver)将版本定义为 MAJOR.MINOR.PATCH 三元组,并对每个部分的含义有严格规则。范围操作符如 caret (^)、tilde (~) 和比较符(>=、<)告诉包管理器您愿意接受哪些未来的版本而不破坏您的合同。无效或模糊的范围可能导致可重现的构建失败或意外升级。提前验证范围可以防止拼写错误进入锁文件。

  3. 在 package.json 中,什么算作非标准字段?

    npm 清单规范定义了顶层字段的固定词汇表及其含义(name、version、scripts、dependencies、engines 等)。各种工具经常添加自己的顶层键——例如 ESLint 配置、Husky 钩子、构建工具设置。这些在技术上是有效的 JSON,但超出了 npm 规范。一些项目出于便利性而保留这些字段,而另一些项目则将其移至专用配置文件,以保持清单专注于打包相关问题。

  4. 为什么应该将 npm 生命周期脚本分组而不是简单地按字母顺序排序?

    npm 按定义的顺序运行生命周期脚本:preinstall 在 install 之前,prepublish 在 publish 之前,依此类推。当您阅读脚本块时,将相关的生命周期三元组(pre/main/post)分组在一起,可以一眼看出执行流程。纯粹的字母顺序排序会将这些配对分散——例如,将 'postbuild' 放在 'build' 旁边很远——这使得理解何时运行变得更加困难。

想要享受无广告的体验吗? 立即无广告

安装我们的扩展

将 IO 工具添加到您最喜欢的浏览器,以便即时访问和更快地搜索

添加 Chrome 扩展程序 添加 边缘延伸 添加 Firefox 扩展 添加 Opera 扩展

记分板已到达!

记分板 是一种有趣的跟踪您游戏的方式,所有数据都存储在您的浏览器中。更多功能即将推出!

广告 移除?
广告 移除?
广告 移除?

新闻角 包含技术亮点

参与其中

帮助我们继续提供有价值的免费工具

给我买杯咖啡
广告 移除?