2016-10-15 16 views
2

我正在使用作曲家來管理一個WordPress項目,並且在開發過程中不需要一些插件。所以基本上與require-dev相反。有沒有簡單的方法可以使用composer在開發環境中排除依賴關係?

如果有它的名字,我會猜測它是要求生產或排除開發。因此只有在運行composer --production時纔會安裝此對象中的需求。這不是一個真正的標誌,只是試圖使解決方案的路徑清晰。

"require-production": { 
    "example/caching-plugin": "1.0" 
} 

有沒有辦法做到這一點?

我可以用PHP函數做到這一點,但真的想保持我的依賴管理在一個位置

回答

0

至於解決方法,你可以定義replace property指定軟件包列表忽略,例如

{ 
    "require": { 
     "example/caching-plugin": "*" 
    }, 
    "replace": { 
     "example/ignore-this": "*" 
    } 
} 

這告訴Composer你正在替換這些依賴項,所以它們不會被下載。


另一種方法是通過將該部執行代碼補丁:

"extra": { 
    "patches": { 
    "vendor/package": { 
     "Bug #1234: Something is wrong": "patches/1234.diff" 
    } 
    } 
} 

對於上述特徵來工作,你需要首先安裝cweagans/composer-patches包,例如

composer require "cweagans/composer-patches:~1.0" 

然後,您可以在某些環境的不同分支上提供不同的補丁文件。


還有scripts屬性,你可以調用一些腳本或命令它可以檢查你的環境,並根據主機名,可以調用某些命令做一些後期處理,如刪除一些文件或文件夾。

相關問題