在插件二開的情況下,以webman/admin為例子,如果手動調整了視圖為blade,視圖文件則.blade.php結尾,這時候刪除掉原來的視圖文件,而當另外一個同事首次開發(fā)時候,composer install首次安裝時候,插件又會同步之前刪除的視圖文件到項目目錄,為了解決這個問題,我不得不把插件的引用從compsoer.json去掉,只是去掉了后可能又會存在以后需要同步插件的問題還有插件代碼缺失問題(雖然webman/admin不會)
希望可以新增composer配置去忽略安裝問題或者和應用一樣有個版本的升級機制
參考laravel框架忽略自動加載擴展服務,在composer里面加入以下擴展信息
"extra": {
"laravel": {
"dont-discover": [
"xxx/xxxxx"
]
}
},
不知道你說的插件是指基礎插件還是應用插件。
基礎插件源碼都在vendor下,不能直接二開,需要自己fork重新發(fā)布成自己的composer庫。
應用插件實際上就是把代碼放在plugin下,除了webman/admin基本都不基于composer,也就沒有composer install同步代碼到本地問題。
表述的不清晰,是webman/admin應用插件安裝機制的問題,多人開發(fā)情況下,當?shù)谝粋€人引入webman/admin包,安裝好后,在本地plugin已經(jīng)把webman/admin的視圖改成blade模板,然后刪除舊的視圖文件,這時候提交完代碼倉庫,當?shù)诙€開發(fā)人員第一次克隆項目下來時候,進行composer install就會有問題,support\Plugin::install安裝重新調用了Webman\Admin的install方法,而這個方法就直接把vendor的代碼copy到plugin目錄,然后舊的視圖文件又回來了。主要原因是composer install的時候調用了support\Plugin::install方法重復安裝
每次composer update或者安裝新的擴展包也會執(zhí)行support\Plugin::install,這就導致了如果刪除過plugin下面的文件時,Webman\Admin的install方法都會復制一份composer包里面的文件,看了下底層直接用了copy_dir進行不覆蓋拷貝,也就意味著刪除過文件都會重新復制回plugin目錄