2013-06-07 36 views
63

tôi có một dự án mà phụ thuộc vào cả hai:Làm thế nào để giải quyết xung đột phiên bản phụ thuộc Bower?

  • jquery ~ 1.9.1
  • một dự án khác do đó phụ thuộc vào jquery> = 1.7.2

Nhưng khi tôi chạy bower install, nó kết thúc bằng cách cài đặt jquery 2.0.2. Điều này có vẻ bị hỏng.

Làm cách nào để (a) giải quyết chính xác các ràng buộc hoặc (b) buộc phải cài đặt phiên bản cuối cùng (giải pháp thay thế)?

+0

Vé: https://github.com/bower/bower/issues/540 –

+0

bạn sẽ có 2 dự án ở đây - vì vậy, một phiên bản sẽ có một phiên bản của jQ và phiên bản khác nên tôi nghĩ bạn cần thêm chi tiết trong câu hỏi của bạn. – landed

+0

Bạn đã tìm thấy một giải pháp cho vấn đề này, vì tôi đang có chính xác cùng một điều và giải pháp của neilhem không làm việc cho tôi (như trong, nó đã không làm cho bất kỳ sự khác biệt)? – Hans

Trả lời

109

Bạn có thể thêm resolutions vào đối tượng trong tệp bower.json và chỉ định tên thành phần & phiên bản để tự động giải quyết xung đột khi chạy lệnh bower. Như thế này:

{ 
    "name": "project-x", 
    "private": true, 
    "dependencies": { 
    "bootstrap-sass": "~3.3.7", 
    "modernizr": "~2.8.3", 
    "jquery": "~1.11.3" 
    }, 
    "devDependencies": {}, 
    "resolutions": { 
    "jquery": "~1.11.3" 
    } 
} 

Ngoài ra bạn có thể chạy bower install và khi Chòi chơi sẽ yêu cầu "phiên bản phù hợp" (nếu chế độ tương tác trên), lựa chọn tiền tố với !, vì vậy Chòi chơi sẽ tiết kiệm được lựa chọn của bạn vào tập tin bower.json .

+2

Bạn đang thiếu một báo giá đóng cửa tại" jquery: "~ 1 ... –

+2

Giải pháp này không hiệu quả đối với tôi. Nó dường như không tạo nên sự khác biệt. Liệu nó đòi hỏi một phiên bản nhất định của Bower và của tôi xảy ra là quá cũ (nó được cài đặt từ npm, vì vậy bất kể phiên bản đó là gì). – Hans

+0

@Hans cố gắng cập nhật chạy bower: cập nhật npm -g bower – neilhem

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