2014-09-18 27 views
48

Tôi đã thiết lập ứng dụng Góc của mình để khi được đẩy tới Heroku, nó chạy bower install. Tuy nhiên, tôi gặp lỗi do sự cố phiên bản.Không thể tìm thấy phiên bản phù hợp cho góc - cài đặt bower

Khi tôi chạy bower install tại địa phương tôi nhận được trình bày với điều này:

Unable to find a suitable version for angular, please choose one:                   
    1) angular#1.2.16 which resolved to 1.2.16 and is required by angular-resource#1.2.16             
    2) angular#1.2.23 which resolved to 1.2.23 and is required by angular-cookies#1.2.23              
    3) angular#>= 1.0.8 which resolved to 1.2.25 and is required by angular-ui-router#0.2.10             
    4) angular#^1 which resolved to 1.2.25 and is required by angular-ui-codemirror#0.1.6             
    5) angular#~1.2.2 which resolved to 1.2.25 and is required by splitter#f5c2195050              
    6) angular#>=1.0.6 which resolved to 1.2.25 and is required by angular-elastic#2.4.0              
    7) angular#~1.2 which resolved to 1.2.25 and is required by angular-nanoscroller#0.2.1             
    8) angular#~1.2.9 which resolved to 1.2.25 and is required by angular-sockjs#0.0.1Prefix the choice with ! to persist it to bower.json 

? Answer:: 

Những gì tôi nên làm gì với điều này - tôi thực sự cần phiên bản 1.3 của Angular vì tính năng debounce

My bower.json trông như thế này :

{ 
    "name": "myapp", 
    "version": "0.0.1", 
    "dependencies": { 
    "json3": "~3.3.1", 
    "es5-shim": "~3.1.0", 
    "angular-resource": "1.2.16", 
    "angular-sanitize": "1.2.16", 
    "angular-animate": "1.2.16", 
    "angular-ui-router": "~0.2.10", 
    "jquery": "~2.1.1", 
    "angular-ui-codemirror": "~0.1.6", 
    "splitter": "*", 
    "angular-cookies": "~1.2.23", 
    "angular-elastic": "~2.4.0", 
    "angular-local-storage": "~0.0.7", 
    "chance": "~0.5.6", 
    "nanoscroller": "~0.8.4", 
    "angular-nanoscroller": "~0.2.1", 
    "angular-sockjs": "~0.0.1" 
    } 
} 

Trả lời

71

Cập nhật phụ thuộc góc hiện tại của bạn thành 1.3.x và thêm độ phân giải cho góc để chặn lời nhắc:

{ 
    "name": "myapp", 
    "version": "0.0.1", 
    "dependencies": { 
    "angular": "~1.3.x", 
    "angular-animate": "~1.3.x", 
    "angular-cookies": "~1.3.x", 
    "angular-resource": "~1.3.x", 
    "angular-sanitize": "~1.3.x", 
    "angular-ui-router": "~0.2.10", 
    "angular-ui-codemirror": "~0.1.6", 
    "angular-elastic": "~2.4.0", 
    "angular-local-storage": "~0.0.7", 
    "angular-nanoscroller": "~0.2.1", 
    "angular-sockjs": ">=0.0.1", 
    "json3": "~3.3.1", 
    "es5-shim": "~3.1.0", 
    "jquery": "~2.1.1", 
    "splitter": "*", 
    "chance": "~0.5.6", 
    "nanoscroller": "~0.8.4" 
    }, 
    "resolutions": { 
    "angular": "~1.3.x" 
    } 
} 
+0

Xin lỗi, nhưng bạn có thể cho tôi biết sẽ có vấn đề gì với angular-ui-router (# 0.2.10) vì nó sử dụng góc cũ hơn không? Nghi ngờ của tôi là tôi có thể mỗi khi đi với phiên bản mới nhất một cách mù quáng? –

+0

@AsimKT Bạn có quản lý để tìm một chiến lược để giải quyết các vấn đề này không? Tôi có nghĩa là nó khá bực bội ở lần vì bạn thấy rằng bạn đang sử dụng một mô-đun phụ thuộc vào một phiên bản cũ của góc và có một số khác được thêm bởi một dev khác tùy thuộc vào phiên bản sau và cả hai đều rất quan trọng đối với dự án của bạn !! Tôi tự hỏi làm thế nào các đội khác đang đối phó với vấn đề này !! – Willa

+0

Không, tôi không có. Tôi nghĩ rằng nó không quan trọng để đi với các phiên bản mới nếu nó không phải là một sự thay đổi phát hành lớn. Tôi cần một plugin cho dự án của tôi có vấn đề này. Tôi đã sử dụng sự phụ thuộc mới nhất và nó hoạt động tốt. Mặc dù tôi đã nêu ra một vấn đề trong repo của họ để bump phiên bản và họ đã làm. Và bạn nói đúng, tất cả chúng ta đều phải đối mặt với những vấn đề này !! –

17

Một lời giải thích rất tốt và giải quyết các vấn đề này có thể được tìm thấy ở đây:

bower-resolutions

Chỉ cần sao chép dán một số dòng vào đây để tham khảo:

Khi bạn chỉ định phụ thuộc cho bạn ứng dụng qua Bower, một số gói có thể dựa vào các phiên bản khác nhau của cùng một thư viện. Bạn sẽ phải giải quyết phiên bản nào của thư viện mà ứng dụng của bạn thực sự muốn. Nói cách khác, bạn phá vỡ cà vạt. Nhưng bạn không muốn phá vỡ nó mỗi lần, vì vậy hãy lưu sự lựa chọn của bạn.

Khi bạn chạy cài đặt bower, quá trình giải quyết là tương tác. Khi Chòi chơi nhận ra rằng có hai gói phụ thuộc vào một gói phần mềm ở phiên bản khác nhau, nó sẽ liệt kê tất cả các phiên bản và yêu cầu:

enter image description here

Dòng tiếp theo trong dấu nhắc là rất tiện dụng. Nó đọc:

enter image description here

Tuyệt vời! Vì vậy, nếu tôi gõ! 2 thay vào đó, lựa chọn của tôi được lưu trong bower.json. Cụ thể, nó sẽ thêm một mục độ phân giải:

enter image description here

Bây giờ, lần sau khi bạn chạy Chòi chơi cho cài đặt, không có câu hỏi tương tác của phiên bản những gì tôi muốn vì tôi đã giải quyết mà ember cho ứng dụng của tôi phải là phiên bản 1.5.1.

9

Bạn nên cập nhật Chòi (Nó làm việc cho tôi):

bower update 
+0

Giống như +1 này, Smooth !! –

2

Xóa bạn/bower_components thư mục và chạy bower install một lần nữa ..

Một hack nhưng công trình vẫn .. !!

1

Bạn có thể chạy lệnh cài đặt và khi nó nhắc chọn phiên bản, sau đó sử dụng dấu chấm than (!) Làm tiền tố cho tùy chọn. Ví dụ: 3 cho tùy chọn thứ ba. Điều này sau đó sẽ được thêm vào tệp bower.json của ứng dụng của bạn và giải quyết xung đột.

Hy vọng điều này sẽ hữu ích.

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