2013-08-08 13 views
5

Tôi muốn cài đặt tất cả các phụ thuộc được duy trì bởi tôi bằng cách sử dụng tùy chọn "thích nguồn", và tất cả các phụ thuộc khác không được tôi duy trì bằng cách sử dụng "ưu tiên".Làm thế nào để "thích nguồn" cho một số phụ thuộc được lựa chọn, và "thích dist" cho phần còn lại?

Điều đó có thể thực hiện được với Composer không? Tôi đã nghĩ rằng có thể có một cái gì đó như thế này, nhưng tôi không thể tìm thấy nó:

"my/dependency":"[email protected]", 
"other/dependency":"[email protected]", 

Bất kỳ ý tưởng nào?

+0

câu trả lời được đưa ra tại: http://stackoverflow.com/questions/15324411/how-to-clone-repository-with-composer-without-prefer-source-using-symfony-2?lq=1 – younes0

Trả lời

3

Bạn chỉ cần không cho phép các phụ thuộc của riêng bạn có liên kết tải xuống phân phối.

Điều đó loại trừ việc sử dụng Github, nhưng sẽ vui vẻ làm việc với bất kỳ kho lưu trữ Git thuần túy nào. Composer kiểm tra rõ ràng nếu url repo trỏ tới Github và sau đó cố tải xuống từ các nguồn đã biết thay vì sao chép repo, thường là cách nhanh hơn.

Vì vậy, bạn có thể nên tham khảo repo Git địa phương của bạn thay vì Github (mà tôi cho rằng bạn đang làm ngay bây giờ).

Tuy nhiên, không có cách nào để quyết định mỗi phụ thuộc sử dụng phương pháp nào.

+0

Tôi chưa bao giờ đã đề cập đến Git hoặc Github. Một số kho lưu trữ công cộng sẽ tải xuống mã zip và một số khác sẽ tải xuống toàn bộ lịch sử nguồn. Trong tài liệu nó nói rằng theo mặc định nó sẽ tải về nguồn cho các phụ thuộc không ổn định, và dist cho những người ổn định, mà tôi không muốn. Tôi muốn nguồn cho tôi, và phân biệt mọi thứ khác. Bạn có chắc chắn không có cách nào để quyết định mỗi phụ thuộc mà phương pháp sử dụng? Nếu như vậy, thật tiếc. – ChocoDeveloper

+0

Nếu một số repos tải về dist, sau đó họ đã thông báo URL tải xuống cho các gói của họ. Những người khác thì không, và không có cách nào để thay đổi điều đó trừ khi bạn biết URL tải xuống và thêm nó vào tệp composer.json cục bộ của bạn theo cách thủ công - và duy trì nó cho các phiên bản mới. Như đã đề cập, đối với một số kho lưu trữ như Github, có thông tin meta đã biết về vị trí để tải xuống, nhưng đây không phải là trường hợp chung. – Sven

+0

Tôi hiểu, cảm ơn. – ChocoDeveloper

Các vấn đề liên quan