composer-normalize 插件可自动标准化 composer.json 格式,支持全局/本地安装、自动监听命令、手动格式化、批量处理及自定义规则,并可通过 Git 钩子和 CI 集成确保团队格式统一。
使用 composer-normalize 插件可以自动标准化 composer.json 文件的格式,统一键顺序、缩进、空格和换行,避免团队协作中因手动编辑导致的无意义 diff。
在项目根目录执行以下命令之一:
composer global require vaimo/composer-plugin
composer require --dev vaimo/composer-plugin
安装后无需额外配置,插件会自动监听 composer install、composer update 和 composer dump-autoload 等命令,并在操作完成后自动 normali
ze composer.json。
如需立即标准化现有文件,运行:
composer normalize —— 格式化当前项目的 composer.json
composer normalize --dry-run —— 预览变更内容,不实际写入composer normalize --verbose —— 显示详细处理过程支持批量处理:在含多个 composer.json 的 monorepo 中,可配合 --path 指定路径或使用 find 命令遍历。
默认行为已覆盖常见规范(如键按字母序排列、4空格缩进、末尾不加逗号),如需调整,可在项目根目录添加 composer.json 同级的 composer-normalize.json 配置文件:
"indent": 2 —— 改为 2 空格缩进"sort-keys": false —— 关闭键排序(不推荐)"trailing-comma": true —— 启用数组末尾逗号(PHP 7.3+ 兼容)配置项以 JSON 格式书写,修改后需重新运行 composer normalize 生效。
为防止未格式化的文件被提交,建议结合 Git 钩子:
.git/hooks/pre-commit 中加入:composer normalize --dry-run || { echo "composer.json not normalized"; exit 1; }
husky + lint-staged(Node.js 项目常用)配合脚本校验composer normalize --dry-run && echo "OK" || (echo "Fail: composer.json needs normalization"; exit 1)
这样能确保每次提交前文件都符合团队约定格式。
# php
# sort
# echo
# 排列
# 配置文件
# ai
# composer
# node
# json
# git
# node.js
# js
# require