如何配置Composer在安装后清理不必要的开发文件(如测试、文档)?

裘德小鎮的故事
发布: 2025-10-11 17:01:01
原创
264人浏览过
答案:通过配置post-install-cmd脚本和使用--no-dev等部署选项可自动清理Composer依赖中的测试、文档等冗余文件。具体包括在composer.json中添加find命令删除tests、docs等目录,结合--prefer-dist和--optimize-autoloader优化安装,适用于Linux/macOS环境,Windows需适配命令,还可通过CI/CD流程构建精简部署包。

如何配置composer在安装后清理不必要的开发文件(如测试、文档)?

Composer 本身不会自动删除开发用文件(如测试代码、文档、示例等),但你可以通过配置和插件来实现安装后自动清理这些不必要的资源。

使用 composer-unused 或自定义脚本清理冗余文件

虽然没有内置选项直接删除 vendor 中的 tests、docs 等目录,但可以通过 post-install-cmd 脚本在安装完成后自动清除常见无用路径。

composer.json 中添加如下脚本:

"scripts": {
    "post-install-cmd": [
        "find vendor/*/* -type d \( -name 'tests' -o -name 'Tests' -o -name 'test' -o -name 'doc' -o -name 'docs' -o -name 'example' -o -name 'examples' -o -name '.github' \) -exec rm -rf {} + || true",
        "find vendor/* -type d -name '.git' -exec rm -rf {} + || true"
    ]
}
登录后复制

说明:

  • 该命令会查找 vendor 目录下所有包中的 testsdocsexamples 等目录并删除。
  • || true 避免因某些目录不存在导致报错中断安装。
  • 适用于 Linux/macOS 环境;Windows 需使用 PowerShell 或 Git Bash 执行类似逻辑。

使用 hirak/prestissimo 提升安装速度(可选)

虽然不直接清理文件,但并行下载能加快依赖获取。安装后仍需配合脚本清理:

如知AI笔记
如知AI笔记

如知笔记——支持markdown的在线笔记,支持ai智能写作、AI搜索,支持DeepseekR1满血大模型

如知AI笔记 27
查看详情 如知AI笔记
composer global require hirak/prestissimo
登录后复制

生产环境建议:使用 --prefer-dist 和 --no-dev

部署时应确保使用以下命令减少开发内容:

composer install --no-dev --prefer-dist --optimize-autoloader
登录后复制
  • --no-dev:跳过 require-dev 中的包(如 phpunit、phpstan 等)。
  • --prefer-dist:优先使用压缩包而非源码克隆,通常不含完整历史记录。
  • --optimize-autoloader:优化类加载性能。

更高级方案:构建自定义部署包

若对体积敏感(如 Serverless 部署),建议在 CI/CD 流程中执行完整清理,并打包精简后的 vendor:

  • 运行 composer install --no-dev
  • 执行 find 删除指定目录。
  • 打包上传结果。

基本上就这些方法,结合脚本和部署策略可以有效去除大部分冗余文件。关键是根据项目实际需求选择合适的清理层级。

以上就是如何配置Composer在安装后清理不必要的开发文件(如测试、文档)?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号