2012-02-17 39 views
5

Tôi hiện đang phát triển ứng dụng Rails sử dụng nhiều thư viện javascript, bao gồm jquery, backbone.js và d3.js. Đối với jquery, có jquery-rails gem, cho xương sống, chúng tôi có backbone-rails. Nhưng không có gì như thế này tồn tại cho d3.js.Cách tốt nhất để giữ thư viện javascript cập nhật trong đường ray là gì?

Tôi đã sao chép javascript từ d3.js vào kho lưu trữ của tôi, điều này có vẻ hơi bẩn đối với tôi, vì khi cập nhật d3, tôi phải sao chép lại (và tôi phải chú ý rằng d3 đã được cập nhật!) . Tôi nghĩ về git submodules, nhưng tôi phải kéo chúng theo cách thủ công mỗi khi tôi kiểm tra kho lưu trữ. Có thể có cách nào để cho bundler kiểm tra một bản phát hành cụ thể của kho lưu trữ d3?

Làm cách nào để bạn xử lý việc cập nhật thư viện javascript của bên thứ ba trong đường ray? Có cách nào ưu tiên không?

+1

Để chúng ở bên ngoài GIT và thực hiện thủ công. –

Trả lời

5

Tại sao không tạo đá quý d3-ray nếu không có? Quy ước bây giờ có vẻ là để đặt các thư viện javascript trong đá quý của riêng mình với jquery-ray bây giờ bao gồm trong Rails 3.1. Bây giờ nó hoạt động nhiều hơn nhưng nó có thể giúp bạn xuống đường. Bạn sẽ giúp cộng đồng và nó sẽ làm cho các bản cập nhật dễ dàng trong ứng dụng của bạn.

+0

Đúng. Xem câu hỏi sau: http://stackoverflow.com/questions/9525381/asset-pipeline-encoding-problems-utf-8-vs-ascii-8bit-with-external-gem – iblue

7

Không chắc lý do tại sao bạn đã downvoted cho điều này ...

Nhưng tôi sẽ phải đồng ý với những nhận xét nói rằng để làm điều đó bằng tay. Tôi sẽ không để nó ra khỏi kho của bạn - không gọi cho điều đó; bạn muốn giữ phiên bản hiện tại của mình xung quanh - nhưng tôi không khuyên bạn nên cập nhật phiên bản tự động.

Đó là vì sự ổn định. Nếu bạn làm cho "sử dụng nặng" JS như bạn nói, một sự lừa đảo - hoặc thậm chí là một bugfix cho một lỗi bạn làm việc xung quanh - trong phiên bản mới nhất của một thư viện có thể chơi tàn phá với mã của bạn. Chúng tôi đã nhận bit bởi một cái gì đó như thế này khi jQuery tinh chỉnh cách nó xử lý attr()prop() giữa hai phiên bản.

Vì vậy, nếu bạn luôn cập nhật thư viện của bạn bằng tay:

  • Bạn luôn biết khi nào họ thay đổi, và rằng bạn phải làm một số thử nghiệm kỹ lưỡng trước khi đưa ra những thay đổi nào.
  • Bạn có thể ở lại với một phiên bản cũ của thư viện nếu bạn muốn - cho hiệu suất, hoặc để cho bạn thời gian để làm việc xung quanh những quirks mới nhất, hoặc bất cứ điều gì.

Hy vọng điều đó sẽ hữu ích!

+0

Concur với @Xavier Holt. Trong khi nó không trả lời câu hỏi của bạn, tôi nghĩ bạn đã nhận được lời khuyên âm thanh. ** Một lần ** chúng tôi cập nhật jQuery mà không cần kiểm tra và thấy rằng những điều xấu đã xảy ra. – Tass

+0

+1 cho vòng kiểm tra giao diện người dùng đầy đủ sau khi cập nhật sự phụ thuộc. Việc nâng cấp ExtJS đã phá vỡ rất nhiều giao diện người dùng của chúng tôi. – Brandan

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