Haruskah bower_components di-gitignored?

157

Apakah itu praktik yang baik untuk hanya menyimpan bower.jsonfile dan gitignore seluruh bower_componentsdirektori?

Pierre de LESPINAY
sumber
Saya baru saja melihat buku masak resmi Symfony yang benar-benar menjawab pertanyaan yang tepat ini, dengan mengutip "Saat ini, Anda mungkin harus menggunakan aset yang diunduh oleh Bower alih-alih menambahkan direktori ke .gitignorefile Anda "
Pierre de LESPINAY

Jawaban:

149

The Halaman Bower resmi menyatakan:

NB Jika Anda tidak membuat paket yang dimaksudkan untuk dikonsumsi oleh orang lain (misalnya, Anda sedang membangun aplikasi web), Anda harus selalu memeriksa paket yang diinstal ke dalam kontrol sumber .

Pastikan untuk memeriksa tautan dalam kutipan, itu membahas beberapa pro dan kontra. Pro utama menyebutkan bahwa memeriksa mereka memastikan bahwa dependensi Anda selalu tersedia, selama repositori Anda tersedia. Tidak peduli apa yang terjadi pada Bower, GitHub, atau apa pun yang dibutuhkan, sebaliknya.

TimWolla
sumber
1
Terima kasih untuk artikel menarik ini. Jadi untuk saat ini kami masih belum memiliki "file kunci" yang setara untuk membekukan versi.
Pierre de LESPINAY
1
@PierredeLESPINAY Hanya untuk tingkat atas. Apa yang hilang setara dengan fitur npm shrinkwrap.
passy
3
Mereka juga mengatakan ini di posting blog mereka "Pada akhirnya, pilihan untuk memeriksa atau tidak semua direktori / bower_components Anda terserah Anda ...".
Krishnaraj
3
Alasan di balik memeriksa mereka adalah bahwa suatu hari perpustakaan mungkin menghilang dari internet atau mereka mungkin down time yang pada gilirannya dapat menyebabkan kegagalan pembangunan. Sebagai pengguna Maven / Gradle, saya tidak pernah berpikir untuk memeriksa dependensi.
Krishnaraj
7
Saran pada halaman Bower resmi untuk memeriksa paket yang diinstal ke kontrol sumber dihapus pada 2014: github.com/bower/bower.github.io/commit/…
pengguna
52

File .gitignore dalam proyek Yeoman AngularJS yang baru dibuat memiliki bower_components (dan node_modules) terdaftar untuk diabaikan (jika Anda tidak tahu Yeoman itu adalah alat perancah web yang sangat terkenal untuk aplikasi web modern, jadi itu cukup baik untuk saya!):

.gitignore

node_modules
dist
.tmp
.sass-cache
bower_components
pengguna12121234
sumber
9

Ada waktu & tempat untuk kedua pendekatan. Untuk Yeoman adalah tepat untuk mengandalkan bower.json karena ini adalah alat dalam rantai alat dan harus tetap hidup dan bernapas dengan ekosistem bower. Untuk aplikasi web yang dapat digunakan, umumnya merupakan praktik yang baik untuk melakukan dependensi dan mempertahankan lebih banyak kontrol.

Inilah artikel bagus yang saya suka membahas hal ini.

JoshuaDavid
sumber
6

Jika Anda menggunakan Grunt dan Node dengan Bower, masuk akal untuk meletakkan bower_components di .gitignore Anda karena ketika Anda menjalankan grunt serve atau grunt build, ia mengurus dependensi untuk Anda, saya yakin itu sebabnya di Yeoman mereka menambahkannya ke .gitignore

Yves
sumber
5

The Yeoman Generator pra-mengisi Gitignore berkas dengan bower_components, tetapi juga pra-diisi dengan direktori lain saya akan berpikir akan diperlukan untuk aplikasi akhir (seperti www) jadi saya melakukan riset.

Saya menemukan bahwa www / index.html adalah versi yang diperkecil dari app / index.html. Direktori aplikasi dan kontennya (termasuk bower_components) berisi file sumber yang diperlukan untuk direktori output (www). Anda mengkomit direktori sumber ke dalam source-control (yaitu git) tetapi tidak menghasilkan file (yaitu www). Manajer paket seperti bower dan npm dimaksudkan untuk digunakan selama fase build / generation dan artefaknya tidak dimaksudkan untuk diperiksa ke dalam kontrol sumber.

Pada akhirnya, sumber yang Anda periksa di git adalah konfigurasi minimum yang diperlukan untuk membangun sisa proyek untuk tujuan pengembangan atau penyebaran.

Erich Cervantez
sumber
0

Adalah baik untuk mengabaikan /bower_componentsdir dan check in saja bower.jsondan bower-locker.bower.jsonfile jika Anda membuat file kunci menggunakan bower-locker yang ditulis oleh Shawn Lonas .

Sebelum bower-locker dibuat, ada kerugian yang disebabkan oleh masalah bower tidak memiliki kemampuan menyusut tetapi dapat dikurangi dengan perpustakaan di atas.

Jalankan perintah berikut untuk mencapainya:

npm install bower-locker -g

atau

yarn global add bower-locker

lalu buat file kunci berdasarkan file yang ada bower.jsondengan menjalankan:

bower-locker lock

File asli bower.jsonakan dinamai ulang menjadibower-locker.bower.json

Joel Handwell
sumber