2016-04-20 17 views
9

Tôi có một cấu trúc thư mục như sau:Không thể có được nhà soạn nhạc "đường dẫn" kho làm việc

composer.json < Main 
    packages/ 
    balunker/ 
     testpackage/ 
     composer.json < Package 
     src/ 
      TestPackage.php 

Các chính composer.json trông như thế này:

{ 
    "name": "vagrant/composer-test", 
    "repositories": [ 
     { 
      "type": "path", 
      "url": "packages/*/*" 
     } 
    ], 
    "require": { 
     "balunker/testpackage": "*" 
    } 
} 

Trong khi gói composer.json trông giống như vậy :

{ 
    "name": "balunker/testpackage", 
    "autoload": { 
    "psr-4": { 
     "Balunker\\": "src/" 
    } 
    } 
} 

Mở composer update Tôi đơn giản nhận được thông báo rằng gói co uld không được giải quyết. Không có liên kết nào được tạo và không có gói nào được cài đặt. Tôi đã dành một nửa thời gian của tôi để tìm ra điều này, mà không thành công.

Tôi cũng đã tải lên một kết quả chi tiết composer update -vvv tiết này: http://pastebin.com/mMRHsACk.

Phiên bản trình soạn nhạc của tôi là phiên bản mới nhất (vào ngày 20 tháng 4 năm 2016 lúc 2:39 chiều UTC) và tất cả điều này đang chạy bên trong Vagrant (Debian).

BẤT CỨ đề xuất nào từ đây được đánh giá cao. Tôi thực sự không biết làm gì nữa.

Trả lời

22

Tôi cũng đăng sự cố trên Github và hóa ra tài liệu hơi gây hiểu nhầm. Nó nói:

{ 
    "repositories": [ 
     { 
      "type": "path", 
      "url": "../../packages/my-package" 
     } 
    ], 
    "require": { 
     "my/package": "*" 
    } 
} 

Tuy nhiên, nếu bạn chỉ có một repo địa phương mà không phát hành, bạn phải sử dụng:

{ 
    "repositories": [ 
     { 
      "type": "path", 
      "url": "../../packages/my-package" 
     } 
    ], 
    "require": { 
     "my/package": "dev-master" 
    } 
} 

Phiên bản dev-master là chìa khóa ở đây (cho rằng bạn đang làm việc trên tổng thể chi nhánh). Điều này hơi giận dữ, nhưng nhờ có một số người đóng góp nhà soạn nhạc hữu ích, tôi cuối cùng cũng có thể nắm bắt được điều này.

Tôi hy vọng điều này có thể giúp ai đó trong tương lai.

Chúc may mắn!

+1

Đối với tôi, mẹo là thêm ['" độ ổn định tối thiểu ":" dev "'] (https://getcomposer.org/doc/04-schema.md#minimum-stability) vào composer.json của tôi file –

+1

@BradKent Tôi rất muốn ngăn cản việc sử dụng "tối thiểu sự ổn định": "dev" 'điều đó có nghĩa là: Bạn muốn từ tất cả các phụ thuộc phiên bản không ổn định mới nhất. Hậu tố 'dev-' prefix hoặc '-dev' sẽ chỉ thay đổi điều này cho một gói được đề cập. – Nemo64

+0

Miễn là bạn cũng có ''thích ổn định' ': true', bạn ổn. Nó sẽ chỉ sử dụng các gói dev khi cần thiết để thỏa mãn sự phụ thuộc. – hackel

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