在開發一個名為foo/bar的php包時,我遇到了一個問題:如何管理編譯后的css和JS文件。這些文件體積較大,并且頻繁更新,我不希望將它們提交到git倉庫中,因為這會使倉庫變得臃腫且難以管理。
最初,我嘗試手動管理這些文件,但這不僅增加了工作量,還容易出錯。后來,我發現了pixelfear/composer-dist-plugin,這個Composer插件允許我在包安裝時從指定的URL下載并解壓包含分發資產的zip文件,從而解決了我的困擾。
使用這個插件非常簡單。首先,我需要在foo/bar包的composer.json文件中添加以下配置:
{ "name": "foo/bar", "require": { "pixelfear/composer-dist-plugin": "dev-master" }, "extra": { "download-dist": { "url": "https://github.com/foo/bar/releases/download/{$version}/dist.tar.gz", "path": "resources/dist" } } }
這個配置告訴Composer在安裝foo/bar包時,從指定的URL下載并解壓dist.tar.gz文件到resources/dist目錄中。需要注意的是,{$version}會自動替換為包的版本號,這使得下載的文件與包的版本保持一致。
使用這個插件后,我不再需要手動管理這些資產文件。每次發布新版本時,我只需更新github Actions工作流程,自動編譯資產并上傳到發布中即可。以下是一個示例工作流程:
立即學習“PHP免費學習筆記(深入)”;
這種方法不僅簡化了我的工作流程,還確保了資產文件的及時更新和版本一致性。即使在開發過程中使用dev-master分支時,如果沒有找到對應的資產文件,我也可以手動編譯并使用。
此外,pixelfear/composer-dist-plugin還支持下載多個資產包,只需在composer.json中配置多個bundle對象即可:
"extra": { "download-dist": [ { "url": "...", "path": "dist/one", }, { "url": "...", "path": "dist/two" } ] }
總的來說,pixelfear/composer-dist-plugin極大地簡化了PHP包中分發資產的管理。它不僅提高了工作效率,還保持了代碼倉庫的整潔和可維護性。如果你在開發PHP包時遇到了類似的資產管理問題,強烈推薦嘗試這個插件。