VendorCleaner 是一个 vendor 目录的清理程序。编写此工具的初衷是有许多朋友一直在抱怨 laravel 的 vendor 目录太过臃肿,事实上 vendor 目录中确实存在许多运行时非必要的文件。VendorCleaner 能够帮助你快速的缩减 vendor 目录的体积。而且,它能够工做在任何使用 Composer 的框架中,而不单单局限于 laravel。php
在 composer.json 文件中申明依赖:laravel
"five-say/vendor-cleaner": "1.*"
在 composer.json 文件 scripts 属性中加入对应的脚本事件回调:git
"scripts": { ... "pre-update-cmd": [ "FiveSay\\VendorCleaner::restore" ], "post-update-cmd": [ "FiveSay\\VendorCleaner::backup", ... ], ... },
如此,在每次 update 操做时都将触发 vendor 目录的清理程序。github
注意:
FiveSay\\VendorCleaner::backup
负责在每次更新后清理 Vendor 目录,清理完成后将在 Vendor 同级目录生成 VendorCleanerBackup 文件夹,用于存放清理出来的文件。而FiveSay\\VendorCleaner::restore
则会在每次更新前将备份的文件放回 Vendor 目录,以确保 Composer 不会下载多余的文件,加快更新速度。json
默认使用的规则文件位于 /vendor/five-say/vendor-cleaner/src/FiveSay/VendorCleaner/VendorCleaner.config.php
。若是须要使用自定义的规则,在 Vendor 同级目录创建自定义的 VendorCleaner.config.php
便可(注意:这将彻底使用用户自定义规则,而忽略默认规则文件)。composer
这里有一个简单的例子:框架
'ircmaxell/password-compat' => 'README.md test'
表示:清理 ircmaxell/password-compat 资源包中的 README.md 文件和 test 目录。工具