如何让 Composer 在安装后自动删除不必要的文件(如测试文件)?

admin 百科 13
Composer 不会自动清理测试文件等冗余内容,推荐使用 eloquent/composer-cleaner 插件或自定义 post-install-cmd 脚本实现安装后自动清理,避免误删核心文件。

如何让 Composer 在安装后自动删除不必要的文件(如测试文件)?-第1张图片-佛山资讯网

Composer 本身不会自动删除测试文件、文档或开发用资源,但可以通过配置 composer.json 中的 archiveinstaller-paths 相关机制,配合插件或脚本,在安装/更新后清理冗余内容。最常用且可靠的方式是使用 composer-cleaner 或更轻量的 scripts + post-autoload-dump 钩子。

启用 Composer 的 archive 配置(适用于包作者)

如果你是包的维护者,可以在自己的 composer.json 中定义哪些路径不参与打包(比如发布到 Packagist 时):

  • 添加 "archive": {"exclude": ["/tests/", "/Tests/", "phpunit.xml", "README.md", ".gitignore"]}
  • 该配置只影响 composer archive 命令或 Packagist 自动生成的 ZIP 包,不影响本地 composer install
  • 对项目依赖的“安装后清理”无直接作用,但能减少远程包体积

在项目中自动清理已安装包的冗余文件

推荐使用 eloquent/composer-cleaner 插件,它专为这个场景设计:

  • 运行 composer require --dev eloquent/composer-cleaner
  • 默认会删掉 tests/Tests/docs/.travis.ymlphpunit.xml 等常见开发文件
  • 支持自定义规则:在 composer.json 加入 "extra": {"cleaner": {"exclude": ["/examples/", "/benchmarks/"]}}
  • 安装/更新后自动触发,无需额外命令

用 post-install-cmd 脚本手动清理(轻量替代方案)

不引入插件时,可写一个简单 shell 脚本配合 Composer 钩子:

标签: php laravel js git json composer windows github 工具 win

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~