2013-10-08 20 views
5

Tôi cần sử dụng Composer để quản lý sự phụ thuộc (normalize.css và những người khác) mà không cần composer.js trong thư mục gốc của dự án. Tôi đã kết thúc việc xác định một gói nhưng tôi có một vài câu hỏi:"Phiên bản" trong kho lưu trữ của Composer có liên quan đến bản phát hành (thẻ) trên GitHub không?

{ 
    "require": { 
     "twbs/bootstrap": "~3.0", 
     "fortawesome/font-awesome": "~3.2", 
     "necolas/normalize.css": "*" 
    }, 
    "repositories": [ 
     { 
      "type":"package", 
      "package": { 
       "name": "necolas/normalize.css", 
       "version":"2", 
       "source": { 
        "url": "https://github.com/necolas/normalize.css.git", 
        "type": "git", 
        "reference":"master" 
       } 
      } 
     } 
    ] 
} 

Liệu version trong gói của tôi đề cập đến một bản phát hành (thẻ) trong kho GitHub? Nếu có, làm cách nào tôi có thể chỉ định tức là ~2.1 (Tôi nhận được định nghĩa gói không hợp lệ) hoặc thẻ mới nhất có sẵn?

Đối với necolas/normalize.css Tôi muốn luôn nhận phiên bản mới nhất của nhánh chính.

Trả lời

5

"Liệu các phiên bản trong gói của tôi đề cập đến một phiên bản"

Không, một phiên bản bên trong một entry package xác định số phiên bản đó Composer nên tham khảo gói này như.

Đặt version rõ ràng là bắt buộc đối với các gói không may, ngay cả khi chúng đến từ Git.

"làm cách nào tôi có thể chỉ định tức là ~ 2.1 (Tôi nhận được định nghĩa gói không hợp lệ) hoặc thẻ mới nhất có sẵn?"

Có vẻ như bạn không thể. Phiên bản được liệt kê trong gói phải là một số phiên bản thực tế, chứ không phải là phạm vi số phiên bản và không có cách nào để tìm nạp các thẻ từ Git.

Nếu bạn thay thế bằng cách sử dụng kho gói để sử dụng gói phần mềm zipball, thật dễ dàng để thêm composer.json với thông tin liên quan sau khi bạn đã tải xuống tệp nén từ Github.

Tôi đã thêm đó làm bằng chứng khái niệm cho https://github.com/Danack/IntahwebzRepo, là một tập lệnh đơn giản để tải xuống các tệp nén từ Github và sau đó thêm mục nhập phiên bản vào composer.json của họ hoặc tạo một composer.json hoàn toàn nếu chúng chưa có.

Khi zipballs được tải xuống và sửa đổi, sau đó sử dụng chúng trong kho lưu trữ Satis (aka Packagist).

+1

Tức là, xóa phiên bản khỏi gói sẽ cho phép tôi chỉ định phiên bản theo cách thông thường (yêu cầu + semver)? – gremo

+1

Có, nó nên làm. – Danack

+1

Không hoạt động. Khi bạn xóa phiên bản khỏi gói, bạn sẽ gặp lỗi khi chạy trình soạn thảo (định nghĩa gói không hợp lệ). – gremo

5

Đây là giải pháp của tôi:

Đối với mục đích thử nghiệm Tôi có tập tin composer.json này:

{ 
    "name": "mycompagny/composer-project", 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "http://localhost/git/test.composer.dep.git" 
     } 
    ], 
    "require" : { 
     "mycompagny/test.composer.dep": "dev-master#v2.0.0" 
    }, 
    "minimum-stability": "dev" 
} 

Trong yêu cầu quan trọng, đưa #youversion sau dev-master để trỏ đến thẻ git của bạn " ".

Thẻ sau # tại đây hoạt động như một cam kết. (theo: https://getcomposer.org/doc/04-schema.md#package-links)

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