Mengapa saya harus menggunakan Bower? [Tutup]

32

Saya sepenuhnya dapat menghargai manfaat dari manajer paket seperti Python pip, Node npm, atau Ruby Gems karena mereka melakukan lebih dari sekadar menambahkan file ke jalur aplikasi Anda.

Mungkin saya kehilangan intinya, atau saya tumpul, tapi di sini ada hal negatif yang bisa saya lihat:

  • Langkah terpisah ketika membangun proyek
  • Pisahkan ketergantungan untuk menginstal melalui manajer paket lain (yo dawg)
  • Lebih banyak kekacauan di root proyek dengan bower.jsondan / atau.bowerrc
  • Ketergantungan pada registri yang terbaru, benar, dan tersedia
  • Beberapa impor / referensi ke hal-hal seperti gambar tidak akan berfungsi
  • Tumpang tindih besar dengan npm, dan sering tidak jelas sumber daya yang digunakan, kapan

The positif yang saya lihat adalah ini:

  • Saya tidak perlu mengunduh dependensi secara manual
  • Secara opsional instal paket sebagai bagian dari perancah berdasarkan permintaan pengguna atau sejenisnya

Saya benar-benar ingin mengetahui manfaat apa pun yang tidak saya sadari, dan saya harus mengatakan bahwa saya tidak berusaha menjadi provokatif. Saya benar-benar ingin tahu.

Wil
sumber
Pada akhirnya, semua manajer paket yang Anda sebutkan melibatkan pengunduhan dependensi, dan mereka berbagi beberapa "negatif" yang sama dengan yang Anda daftarkan untuk Bower. Demikian juga, Bower membagikan beberapa manfaat dari npm, pip, dan rubygem: misalnya, Bower memudahkan untuk memperbarui dependensi Anda ke versi terbaru (ini yang besar), dan itu sangat mengurangi kekacauan dalam repo git Anda karena Anda tidak perlu kode dependensi check-in.
sffc
6
Sayang sekali pertanyaan ini ditutup karena "terutama berdasarkan pendapat." OP meminta pendapat ahli. "Bagaimana ini membantu saya dalam proses pengembangan?"
Dave Kanter
Sepertinya trennya adalah Anda tidak boleh menggunakan bower, tidak memiliki tooling atau kelebihan dibandingkan menggunakan npm yang dikombinasikan dengan Browserify. Tampaknya industri telah berbicara dan jumlah jumlah modul untuk bower menurun dan npm dan Browserify menjadi standar: quora.com/Why-use-Bower-when-there-is-npm
Brian Ogden

Jawaban:

12

Dari README :

Bower adalah manajer paket untuk web. Ini menawarkan solusi generik, tanpa pilihan untuk masalah manajemen paket front-end, sambil mengekspos model ketergantungan paket melalui API yang dapat dikonsumsi oleh tumpukan build yang lebih beralasan. Tidak ada dependensi di seluruh sistem, tidak ada dependensi yang dibagikan antara aplikasi yang berbeda, dan pohon dependensi rata.

Bower berjalan di atas Git, dan merupakan paket-agnostik. Komponen yang dikemas dapat terdiri dari semua jenis aset, dan menggunakan semua jenis transportasi (misalnya, AMD, CommonJS, dll.).

Bower memiliki banyak manfaat dari manajer ketergantungan lainnya. Saya yakin ada yang lain, tetapi manfaat yang saya perhatikan sejauh ini meliputi:

  • Sederhanakan apa yang disebut manajemen ketergantungan deklaratif; yaitu Anda mendeklarasikan dependensi Anda di bower.json sehingga hal-hal lain dapat menentukannya dengan mudah
  • Tidak perlu melakukan dependensi ke kontrol versi
  • Versi semantik digunakan untuk membantu menentukan serangkaian versi yang dapat diterima untuk dependensi, yang membuatnya mudah untuk memperbarui ke versi yang lebih baru dalam rentang yang ditentukan
  • Tidak perlu menemukan berbagai build (debug, diperkecil, dll)
  • Mudah untuk menggunakan build yang berbeda dari dependensi untuk dev vs prod
  • Anda dapat mendistribusikan file bower.json dan semua orang bisa mendapatkan kecepatan dengan "instalasi bower" sederhana
Mike Partridge
sumber
2
Semoga saya telah menulis pertanyaan dengan cara yang tidak terlalu provokatif. Sungguh saya kira manfaat penting yang saya lewatkan adalah menggunakan API sebagai bagian dari proses build / scaffolding. Saya ingin melihat penggunaannya di alam liar di suatu tempat.
Wil
Saya menjadi sadar akan Bower ketika saya menjalankan webapp Angular menggunakan generator Angular untuk Yeoman. Mencoba yang mungkin memberi Anda gambaran tentang bagaimana itu dapat digunakan.
Mike Partridge
Saya telah menggunakan Yeoman dan Grunt Init sebelum itu, dan mungkin hanya saja kebutuhan saya selalu berarti komponen ujung depan tidak akan pernah menyimpang - mereka akan selalu Angular, jQuery, Mocha dll. Tetapi saya dapat melihat bahwa jika pengguna ingin menukar kerangka kerja pengujian dari daftar pilihan prompt bootstrap, itu akan berguna. Saya pikir keuntungan utama yang masuk akal adalah opsi dan pengubah bootstrap. Apakah Anda pikir itu adil?
Wil
2
Juga mudah dibawa. Anda dapat mendistribusikan file bower.json dan semua orang dapat mempercepat dengan "instalasi bower" sederhana.
Dave Kanter
1
s/bower/npm/idan jawaban ini masih 100% benar.
Qix