給 composer 的 vendor 目錄瘦個身

VendorCleaner

VendorCleaner 是一個 vendor 目錄的清理程序。編寫此工具的初衷是有許多朋友一直在抱怨 laravel 的 vendor 目錄太過臃腫,事實上 vendor 目錄中確實存在許多運行時非必要的文件。VendorCleaner 能夠幫助你快速的縮減 vendor 目錄的體積。而且,它能夠工做在任何使用 Composer 的框架中,而不單單侷限於 laravelphp


在什麼狀況下使用 VendorCleaner?

  • 因爲主機商的限制沒法在部署階段使用 Composer,須要由本地打包 Vendor 目錄上傳。
  • Composer 默認安裝的 Vendor 目錄存在部分非必要文件,形成 Vendor 目錄臃腫。

是否有框架限制?

  • 沒有。
  • 任何使用 Composer 的項目都可使用。

使用效果如何?

  • laravel-4.1 下進行測試,Vendor 目錄瘦身近50%。

如何使用此項目?

在 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 目錄。工具

項目主頁

5-say/VendorCleanerpost

相關文章
相關標籤/搜索