phpvendor引⼊⾃建⽬录,给compor的vendor⽬录瘦个⾝VendorCleaner
VendorCleaner 是⼀个 vendor ⽬录的清理程序。编写此⼯具的初衷是有许多朋友⼀直在抱怨 laravel 的 vendor ⽬录太过臃肿,事实上vendor ⽬录中确实存在许多运⾏时⾮必要的⽂件。VendorCleaner 可以帮助你快速的缩减 vendor ⽬录的体积。并且,它可以⼯作在任何使⽤ Compor 的框架中,⽽不仅仅局限于 laravel。
在什么情况下使⽤ VendorCleaner?
由于主机商的限制⽆法在部署阶段使⽤ Compor,需要由本地打包 Vendor ⽬录上传。
Compor 默认安装的 Vendor ⽬录存在部分⾮必要⽂件,造成 Vendor ⽬录臃肿。
是否有框架限制?
没有。
任何使⽤ Compor 的项⽬均可使⽤。
使⽤效果如何?
laravel-4.1 下进⾏测试,Vendor ⽬录瘦⾝近50%。
如何使⽤此项⽬?
在 compor.json ⽂件中申明依赖:
"five-say/vendor-cleaner": "1.*"
在 compor.json ⽂件 scripts 属性中加⼊对应的脚本事件回调:
"scripts": {
...
"pre-update-cmd": [
"FiveSay\\VendorCleaner::restore"
],
"post-update-cmd": [
"FiveSay\\VendorCleaner::backup",
...
],
...
},
如此,在每次 update 操作时都将触发 vendor ⽬录的清理程序。
注意: FiveSay\\VendorCleaner::backup 负责在每次更新后清理 Vendor ⽬录,清理完成后将在 Vendor 同级⽬录⽣成VendorCleanerBackup ⽂件夹,⽤于存放清理出来的⽂件。⽽ FiveSay\\VendorCleaner::restore 则会在每次更新前将备份的⽂件放回Vendor ⽬录,以确保 Compor 不会下载多余的⽂件,加快更新速度。
如何⾃定义清理规则?
默认使⽤的规则⽂件位于 /vendor/five-say/vendor-cleaner/src/FiveSay/VendorCleaner/VendorCleane
这⾥有⼀个简单的例⼦:
'ircmaxell/password-compat' => 'README.md test'
表⽰:清理 ircmaxell/password-compat 资源包中的 README.md ⽂件和 test ⽬录。项⽬主页