Tôi có nên thêm phiên bản cho mỗi viên ngọc trong Gemfile của tôi không? Đây có phải là cách thực hành tốt nhất không? Chỉ cần đề nghị?Thực hành tốt nhất, thêm một phiên bản cho mỗi viên ngọc trong gemfile?
Trả lời
Tôi thích tất cả đá quý của mình bị khóa với phiên bản cụ thể trong quá trình sản xuất. Xem xét có thể có các phiên bản mới hơn phá vỡ tính tương thích với các đá quý khác hoặc không sử dụng một số API, bạn muốn chắc chắn 100% rằng bạn sẽ không nhận được ứng dụng bị hỏng đáng ngạc nhiên khi triển khai vì không nhất quán về đá quý. Việc cập nhật gem chỉ nên được thực hiện cục bộ trong phát triển, bằng cách cập nhật các mục Gemfile của chúng và kiểm tra từng phiên bản mới so với phần còn lại của mã và thư viện của bạn.
Nói chung, bạn không cần phải trừ khi được hướng dẫn làm như vậy (hoặc bởi tác giả đá quý hoặc phản hồi từ người dùng do không tương thích). Đôi khi bạn có thể sử dụng phiên bản cạnh của đá quý nhất định để nó không quan trọng anyway:
# Bundle edge Rails instead:
gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'arel', :git => 'git://github.com/rails/arel.git'
gem "rack", :git => "git://github.com/rack/rack.git"
Tôi không nghĩ rằng bạn nên xác định phiên bản của mỗi viên ngọc, kể từ phiên bản của đá quý làm việc hiện tại đã quy định tại Gemfile.lock
.
Ngoài ra nếu bạn làm như vậy, lệnh bundle update
sẽ vô ích. Bạn sẽ có thể sử dụng lệnh này để cập nhật các gem. nếu các bài kiểm tra vượt qua và đơn đăng ký của bạn tiếp tục hoạt động đúng cách, chỉ cần cam kết Gemfile.lock
'Gemfile.lock' được tạo hoàn toàn từ các quy tắc được chỉ định trong' Gemfile' và 'gói cập nhật' cuối cùng, vì vậy chỉ có' Gemfile' được xem xét, bất kể phiên bản được chỉ định hay không. – prusswan
đó là những gì tôi đang nói quá ... Bạn không nên chỉ định phiên bản của từng viên đá quý để cập nhật gói 'có thể cập nhật một số trong số chúng –
- 1. Bạn có thể có nhiều phiên bản của một viên ngọc trong Gemfile không?
- 2. Postgres - phiên bản mới nhất 0.14.0 của "pg" viên ngọc cho lỗi
- 3. Thực tiễn tốt nhất cho thông tin phiên bản?
- 4. Thực hành tốt nhất cho hệ thống phiên bản dữ liệu mysql
- 5. Thực hành tốt nhất cho IntelliJ IDEA 9 + Maven + Kiểm soát phiên bản
- 6. Cách truy cập phiên bản của một viên ngọc từ trong Ruby?
- 7. Thực hành tốt nhất C++ cho hằng
- 8. Thực hành tốt nhất của Verilog - Tăng thêm một biến
- 9. ASP.NET 4.0- Nhân viên nền tảng - thực hành tốt nhất
- 10. Thực hành tốt nhất cho tệp typedefs
- 11. Thực hành tốt nhất cho mẫu DAO?
- 12. cmake thực hành tốt nhất
- 13. Phải làm gì sau khi loại bỏ một viên ngọc từ Gemfile?
- 14. Thực hành tốt nhất hợp nhất một phần SVN
- 15. Có nên chỉ định các phiên bản Gem bắt buộc trong Gemfile hay không cho ứng dụng đường ray
- 16. Thực hành tốt nhất cho các sản phẩm tự động
- 17. NamedQuery: Thực hành tốt nhất
- 18. Thực hành tốt nhất cho 'InProc' vs 'StateServer' cho trạng thái phiên ASP .NET
- 19. Làm thế nào để sử dụng một viên ngọc trong Rails 3 mà không cần tham khảo nó trong Gemfile
- 20. htaccess thực hành tốt nhất
- 21. Thực hành tốt nhất C# và Excel
- 22. Thiết kế API - thực hành tốt nhất và cách hỗ trợ nhiều phiên bản
- 23. Thực hành tốt nhất của WPF cho cửa sổ DataEntry
- 24. Hibernate Performance Thực hành tốt nhất?
- 25. Python/Flask thực hành tốt nhất cho lớp dịch vụ
- 26. một ví dụ tốt về thực hành tốt nhất ant
- 27. Pattern Repository Thực hành tốt nhất
- 28. Thực hành tốt nhất của dbunit cho hiệu suất
- 29. Thực hành tốt nhất cho một dự án SVN lớn duy nhất
- 30. Thực hành tốt nhất để viết bookmarklets
Ngoài ra, đôi khi có trường hợp ngược lại phải lấy phiên bản mới nhất có sẵn trên nguồn, bởi vì nó chứa bản sửa lỗi rất cần thiết không có trong các bản phát hành được đánh số. (đã xảy ra với will_paginate tại một thời điểm) – prusswan