Tại sao tôi nên sử dụng Bower? [đóng cửa]


32

Tôi hoàn toàn có thể đánh giá cao những lợi ích của trình quản lý gói như Python pip, Node npmhoặc Ruby Gems vì chúng đang làm nhiều hơn là thêm tệp vào đường dẫn ứng dụng của bạn.

Có thể tôi đang thiếu điểm, hoặc tôi đang bị làm phiền, nhưng đây là những tiêu cực tôi có thể thấy:

  • Bước riêng khi xây dựng dự án
  • Phụ thuộc riêng biệt để cài đặt thông qua trình quản lý gói khác (yo dawg)
  • Sự lộn xộn hơn trong root dự án với bower.jsonvà / hoặc.bowerrc
  • Sự phụ thuộc vào sổ đăng ký được cập nhật, chính xác và có sẵn
  • Một số nhập / tham chiếu đến những thứ như hình ảnh sẽ không hoạt động
  • Sự chồng chéo quá lớn với npm và thường không rõ sử dụng tài nguyên nào, khi nào

Những mặt tích cực tôi có thể thấy là:

  • Tôi không phải tải xuống các phụ thuộc bằng tay
  • Tùy chọn cài đặt các gói như một phần của giàn giáo dựa trên lời nhắc của người dùng hoặc tương tự

Tôi thực sự muốn biết về bất kỳ lợi ích nào mà tôi không biết, và tôi nên nói rằng tôi không cố tỏ ra khiêu khích mà tôi thực sự muốn biết.



Cuối cùng, tất cả các trình quản lý gói mà bạn đề cập đều liên quan đến việc tải xuống các phụ thuộc và chúng chia sẻ một số "tiêu cực" giống như bạn đã liệt kê cho Bower. Tương tự, Bower chia sẻ một số lợi ích của npm, pip và rubygems: ví dụ, Bower giúp dễ dàng cập nhật các phụ thuộc của bạn lên phiên bản mới nhất (đây là một phiên bản lớn) và nó giảm đáng kể sự lộn xộn trong repit git của bạn kể từ khi bạn không cần đăng ký mã phụ thuộc.
sffc

6
Thật xấu hổ khi câu hỏi này đã bị đóng cửa vì "chủ yếu dựa trên quan điểm." OP đang hỏi ý kiến ​​chuyên gia. "Làm thế nào điều này hỗ trợ tôi trong quá trình phát triển?"
Dave Kanter

Có vẻ như xu hướng là bạn không nên sử dụng Bower, nó không có công cụ hay lợi thế nào so với việc sử dụng npm kết hợp với Browserify. Có vẻ như ngành công nghiệp đã nói và số lượng mô-đun cho bower đang giảm và npm và Browserify đang trở thành tiêu chuẩn: quora.com/Why-use-Bower-when-there-is-npm
Brian Ogden

Câu trả lời:


12

Từ README :

Bower là một người quản lý gói cho web. Nó cung cấp một giải pháp chung, không có vấn đề cho vấn đề quản lý gói mặt trước, đồng thời phơi bày mô hình phụ thuộc gói thông qua API có thể được sử dụng bởi ngăn xếp xây dựng có nhiều ý kiến ​​hơn. Không có phụ thuộc toàn hệ thống, không có phụ thuộc được chia sẻ giữa các ứng dụng khác nhau và cây phụ thuộc là phẳng.

Bower chạy trên Git, và là bất khả tri. Một thành phần đóng gói có thể được tạo thành từ bất kỳ loại tài sản nào và sử dụng bất kỳ loại vận chuyển nào (ví dụ: AMD, CommonJS, v.v.).

Bower có nhiều lợi ích của các nhà quản lý phụ thuộc khác. Tôi chắc chắn có những người khác, nhưng những lợi ích tôi đã nhận thấy cho đến nay bao gồm:

  • Đơn giản hóa những gì có thể được gọi là quản lý phụ thuộc khai báo; tức là bạn khai báo các phụ thuộc của bạn trong bower.json để những thứ khác có thể xác định chúng dễ dàng
  • Không cần phải cam kết phụ thuộc vào kiểm soát phiên bản
  • Phiên bản ngữ nghĩa được sử dụng để giúp xác định một loạt các phiên bản có thể chấp nhận cho một phụ thuộc, giúp dễ dàng cập nhật lên các phiên bản mới hơn trong phạm vi được xác định
  • Không cần xác định vị trí các bản dựng khác nhau (gỡ lỗi, rút ​​gọn, v.v.)
  • Đơn giản để sử dụng các bản dựng khác nhau của một phụ thuộc cho dev so với prod
  • Bạn có thể phân phối tệp bower.json và mọi người đều có thể tăng tốc với một "cài đặt bower" đơn giản

2
Chắc chắn tôi muốn viết câu hỏi theo cách ít khiêu khích hơn. Thực sự tôi đoán lợi ích quan trọng mà tôi đã bỏ lỡ là sử dụng API như một phần của quy trình xây dựng / giàn giáo. Tôi muốn thấy việc sử dụng nó trong tự nhiên ở đâu đó.
Wil

Tôi biết đến Bower khi tôi khởi động một ứng dụng web Angular bằng cách sử dụng trình tạo Angular cho Yeoman. Việc thử đó có thể cho bạn ý tưởng về cách sử dụng nó.
Mike Partridge

Tôi đã sử dụng Yeoman và Grunt Ban đầu trước đó và có lẽ chỉ là nhu cầu của tôi luôn có nghĩa là các thành phần giao diện sẽ không bao giờ đi chệch hướng - chúng sẽ luôn là Angular, jQuery, Mocha, v.v. nhưng tôi có thể thấy rằng nếu người dùng muốn trao đổi một khung kiểm tra từ danh sách lựa chọn nhắc nhở bootstrap, sẽ hữu ích. Tôi nghĩ rằng lợi thế chính có ý nghĩa là các tùy chọn và sửa đổi bootstrap. Bạn có nghĩ rằng đó là công bằng?
Wil

2
Ngoài ra tính di động. Bạn có thể phân phối tệp bower.json và mọi người đều có thể tăng tốc với một "cài đặt bower" đơn giản.
Dave Kanter

1
s/bower/npm/ivà câu trả lời này vẫn đúng 100%.
Qix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.