Bagaimana Anda membandingkan npm
, bower
dan volo
?
Ketiganya dapat digunakan untuk menginstal dependensi JavaScript untuk proyek UI. Saya mengerti npm
lebih spesifik node.
Jadi, kapan harus menggunakan apa?
npm
masih berdiri jauh, tetapi bower
dan volo
tampaknya menyelesaikan masalah yang persis sama, meskipun saya tidak dapat menarik garis antara npm
dan bower-volo
.
Jawaban:
Deskripsi yang paling menjelaskan perbedaan antara npm dan bower adalah: npm mengelola modul JavaScript yang disebut paket dan Bower mengelola komponen front-end (yaitu css, html, dan JavaScript) yang disebut komponen. npm juga digunakan untuk menginstal bower. Berikut ini adalah artikel yang luas tentang npm dan bower (tidak mencakup volo) yang masuk ke banyak detail.
sumber
punjung
Ini masih sangat populer di kalangan pengembang front-end, meskipun memiliki fitur yang sangat sedikit. Setiap paket front-end menggunakannya. Ada juga inisiatif untuk menggabungkan bower menjadi npm .
Bower dioptimalkan untuk sisi klien dan hanya mendukung pohon dependensi rata, yaitu setiap perpustakaan harus digunakan hanya sekali (karena mahal untuk mengirimkan versi berbeda dari perpustakaan yang sama ke klien), dan batasan ketergantungan harus diselesaikan oleh pengguna .
Anda dapat berharap untuk menemukan apa pun yang terkait front-end dalam registri bower (
bower search <some keyword>
) - menurut pendapat saya, itulah keuntungan terbesar dari bower dalam kaitannya dengan manajer paket lainnya.volo
Saya masih belum menggunakannya selama lebih dari 5 menit dalam beberapa tahun. Tidak tahu tentang itu, tetapi dari apa yang saya lihat itu memang termasuk beberapa alat membangun, yang sangat akrab bagi pengguna Grunt.
npm
Ya, npm adalah kependekan dari Node Package Manager. Tetapi saat ini Anda dapat menggunakannya untuk semuanya; orang tidak lagi hanya
npm install
memikirkan hal-hal dan mengharapkan mereka bekerja hanya di lingkungan Node. Misalnya, ada banyak paket npm untuk Twitter Bootstrap .Npm dioptimalkan untuk penggunaan sisi server, dengan pohon dependensi bersarang. Setiap ketergantungan dapat memiliki ketergantungannya sendiri yang dapat dimiliki sendiri, dan seterusnya. Ini menghilangkan konflik versi ketergantungan karena setiap ketergantungan dapat menggunakan versi mereka sendiri, misalnya Underscore. Namun, npm versi 3 yang akan datang akan meratakan pohon dependensi :
Beberapa keuntungan yang saya lihat saat menggunakan npm:
npm adalah manajer paket untuk JavaScript.
Per februari 2013, pendapat saya adalah sebagai berikut. Tolong jangan memperhitungkannya lagi.
npm
Lebih baik untuk tetap menggunakannya ketika Anda dengan proyek Node, ada beberapa proyek yang tersedia untuk browser juga ...
punjung
Bower adalah pria pop sekarang. Mereka memiliki banyak proyek di bawah tenda mereka, dan pengelola proyek ingin menjaga mereka tetap up-to-date dalam daftar ...
Ini memalukan bahwa dia kadang-kadang sedikit buggy.
volo
Saya belum mencoba volo selama lebih dari 5 menit sejak itu, tetapi dari apa yang saya lihat terlihat lebih fleksibel daripada bower.
Poin negatif untuk volo adalah bahwa proyek mereka sangat ketinggalan jaman.
sumber
Mereka tampaknya memecahkan masalah yang sama tetapi untuk lingkungan / dunia yang berbeda. NPM untuk nodejs dan volo, bower untuk browser.
Yang benar adalah bahwa Anda dapat menggunakan NPM juga untuk mengelola javascript dan css untuk browser. Tidak ada yang mencegah Anda melakukannya. Dalam hal itu menggunakan NPM terasa lebih alami bagi saya daripada harus mengelola dua alat yang berbeda untuk tujuan yang sama.
Tampaknya bower memiliki lebih banyak paket yang tersedia, setidaknya untuk yang lebih populer. Tetapi segera jQuery juga akan tersedia di NPM secara langsung dan mungkin semua perpustakaan lain akan mengikuti tren yang sama.
Menurut pendapat saya, karena ada alat seperti browserify dan webmake di luar sana, yang membantu menggunakan modul simpul di browser, tidak ada lagi kebutuhan nyata untuk bower atau volo , kecuali mereka menawarkan sesuatu yang lain untuk Anda (modul tertentu yang hanya ada di registrasi mereka).
Baik Volo dan Bower juga bagus, tetapi dari sudut pandang saya, jika Anda sudah menggunakan NPM, mungkin lebih baik untuk tetap menggunakannya.
Harap dicatat bahwa Anda dapat menggunakan NPM untuk mengelola dependensi klien Anda bahkan tanpa menggunakan browserify atau webmake . Di sebagian besar proyek yang saya kerjakan, setelah modul npm diinstal saya menjalankan skrip untuk menyebarkannya ke lokasi di mana aplikasi klien saya menggunakannya. Terkadang saya menggunakan grunt untuk menggabungkan file itu dengan file js lainnya dan terkadang saya mereferensikannya langsung dari file template aplikasi web saya. Bagaimanapun, ini adalah preferensi pribadi. Orang lain dapat menemukan Bower atau Volo lebih mudah digunakan karena mereka lebih cocok secara alami dalam alur kerja mereka.
sumber
yeoman
proyek memilih untuk datang dengan manajer paket baru ketika kita sudah punyanpm
? (Itu matang, terkenal & kaya fitur) Pikiran ini membuat saya merasa saya masih kehilangan poin sebenarnya.npm
demi kesederhanaan frontend. Oleh karena itu untuk pengembangan frontend.Keuntungan besar Bower atas NPM adalah bahwa manajemen ketergantungannya menggunakan versi komponen tunggal (sedangkan NPM bekerja dengan memiliki salinan / versi yang berbeda sebagai subdependensi dari berbagai modul). Ini adalah HAL YANG SANGAT BAIK karena mencegah javascript sisi klien Anda membengkak karena harus menyertakan banyak salinan komponen pada versi yang berbeda. Termasuk beberapa salinan modul merupakan pusat bagaimana manajemen ketergantungan NPM bekerja, dan oleh karena itu NPM sepenuhnya tidak cocok untuk manajemen paket sisi klien.
Konsekuensi dari hal di atas adalah bahwa pengelola paket bower dan konsumen harus lebih berhati-hati dalam mempertahankan nomor versi ketergantungan mereka untuk menghindari konflik, tetapi itu adalah harga yang pantas dibayar. Dan saya menemukan modul NPM sering ceroboh dalam mengeluarkan rilis besar, kecil, dan patch sehingga manajemen ketergantungan NPM juga tidak tepat.
sumber
Saya tahu ini bukan dalam lingkup pertanyaan tetapi ada alternatif lain juga. Jam JS - http://jamjs.org/ Satu hal yang menarik adalah ia memiliki kemampuan mendengus dalam kemacetan:
Seseorang harus membuat pengelola paket lain dan menamainya: yapm :)
sumber