Saya tidak 100% yakin dengan positifnya. Ini beberapa negatifnya
Anda sering berakhir menambahkan dependensi ke server / titik akhir pihak ketiga yang mungkin tidak stabil.
Saya sudah mengalami dengan bower bahwa repo dari beberapa dependensi telah dihapus atau dipindahkan. Jadi dev baru datang, klon repo saya, ketik
bower install
dan mendapat kesalahan untuk repo yang tidak dapat diakses. Jika sebaliknya saya telah memeriksa kode pihak ke-3 ke dalam repo saya bahwa masalah itu hilang.
Ini dipecahkan seperti yang disarankan OP jika Anda menarik deps dari salinan yang disimpan di server yang Anda jalankan.
Lebih sulit untuk noobs.
Saya bekerja dengan siswa seni dengan pengalaman baris perintah yang sangat sedikit. Mereka membuat karya seni dengan Processing, arduino, Unity3D, dan bertahan dengan sedikit pengetahuan teknologi. Mereka ingin menggunakan beberapa HTML5 / JavaScript yang saya tulis. Langkah karena bower
- Unduh Zip repo dari github (perhatikan itu di sebelah kanan setiap repo di github. Karena mereka tidak tahu git)
- Unduh dan instal simpul (sehingga kami dapat menjalankan npm untuk menginstal bower)
- Instal git atau msysgit (karena bower membutuhkannya dan itu tidak diinstal pada mesin banyak siswa)
- Pasang bower (
npm install -g bower
)
bower install
(akhirnya untuk mendapatkan dependensi kami)
Langkah 2-5 semua bisa dihapus jika kita hanya memeriksa file ke repo github kita. Langkah-langkah itu mungkin terdengar sangat mudah bagi Anda dan saya. Bagi para siswa mereka sangat membingungkan dan mereka ingin tahu apa semua langkah di mana dan untuk apa mereka mungkin belajar yang baik tetapi sepenuhnya ortogonal dengan topik kelas dan kemungkinan besar dengan cepat dilupakan.
Ini menambah langkah lain saat menarik.
Itu terjadi berkali-kali saya melakukan git pull origin master
dan kemudian menguji kode saya dan butuh 5 hingga 10 menit untuk mengingat saya perlu mengetik bower install
untuk mendapatkan deps terbaru. Saya yakin itu mudah diselesaikan dengan beberapa hook script kait.
Itu membuat git bercabang lebih sulit
Jika 2 cabang memiliki deps yang berbeda, Anda agak kacau. Saya kira Anda bisa mengetik bower install
setelah setiap git checkout
. Begitu banyak untuk kecepatan.
Adapun positif Anda, saya pikir ada contoh kontra untuk masing-masing
Mempermudah proses mendistribusikan dan mengimpor modul bersama, terutama peningkatan versi.
vs apa? Ini tentu tidak mudah untuk didistribusikan. Menarik satu repo bukannya 20 tidak mudah dan lebih mungkin gagal. Lihat # 1 di atas
Menghapus modul yang dibagikan dari kontrol sumber, mempercepat dan menyederhanakan pemeriksaan / pemeriksaan (ketika Anda memiliki aplikasi dengan 20+ pustaka, ini adalah faktor nyata).
Sebaliknya itu berarti Anda bergantung pada orang lain untuk perbaikan. Berarti jika deps Anda menarik dari sumber pihak ke-3 dan Anda perlu bug diperbaiki Anda harus menunggu mereka untuk menerapkan patch Anda. Lebih buruk lagi, Anda mungkin tidak bisa hanya mengambil versi yang Anda inginkan ditambah tambalan Anda, Anda harus mengambil yang terbaru yang mungkin tidak kompatibel dengan proyek Anda.
Anda dapat menyelesaikannya dengan mengkloning repo mereka secara terpisah dan kemudian mengarahkan proyek Anda ke salinan Anda. Kemudian Anda menerapkan perbaikan apa pun pada salinan Anda. Tentu saja Anda juga bisa melakukan itu jika Anda hanya menyalin sumber ke repo Anda
Memungkinkan lebih banyak kontrol atau kesadaran tentang lib pihak ketiga apa yang digunakan dalam organisasi Anda.
Itu sepertinya bisa diperdebatkan. Hanya perlu devs untuk meletakkan perpustakaan pihak ke-3 di folder mereka sendiri di bawah <ProjectRoot>/3rdparty/<nameOfDep>
. Sama mudahnya untuk melihat lib pihak ke-3 apa yang digunakan.
Saya tidak mengatakan tidak ada yang positif. Tim terakhir yang saya ikuti memiliki> 100 perwakilan pihak ketiga. Saya hanya menunjukkan tidak semua mawar. Saya sedang mengevaluasi apakah saya harus menyingkirkan bower untuk kebutuhan saya misalnya.