Bagaimana cara memperbarui bower.json dengan paket yang diinstal?

129

Dalam proyek saya, saya telah menginstal bowerkomponen tanpa opsi simpan . Sekarang, saya ingin memperbaruibower.json ?

Bagaimana saya bisa memperbarui bower.json dengan paket yang diinstal?

Konga Raju
sumber
2
Kurangnya satu langkah cara untuk melakukan ini sepertinya sangat kurang. Karena ada perintah uninstall, sepertinya menjalankan bower installtanpanya --saveakan selalu lebih sulit dan tidak pernah lebih mudah.
Chris
1
Jika Anda tidak memiliki apa pun di bower.json Anda, hapus saja dan ketik bower initkonsol Anda.
Jean-Luc Barat

Jawaban:

146

Cukup daftarkan dependensi Anda:

bower list

Maka Anda harus menjalankan semua perintah install dengan param '--save' seperti ini:

bower install bootstrap --save

Ini adalah kerja keras, tetapi jika Anda memiliki seribu dependensi, dapatkah Anda membuat skrip untuk mengotomatiskan tugas.

Helder Robalo
sumber
Ini jawaban yang bagus. Terima kasih!
jessegavin
1
Saya menemukan ini bermasalah hanya dengan ~ 10 paket, karena tidak jelas paket mana yang diunduh sebagai dependensi dari yang lain, yang menyebabkan bower meminta nomor versi. Bahkan dengan jawaban yang benar, file bower.json yang dihasilkan tidak tepat. Saya bekerja dengan jawaban Sebastien, yang bekerja untuk saya.
gb2d
Ketergantungan yang belum dideklarasikan di bower.json diidentifikasi oleh tag "extraneous" di konsol.
otaviodecampos
135

Trik kecil jika Anda tidak ingin menulis skrip untuk itu:

sebelum melakukan apa pun ganti nama bower.json Anda di bower2.json misalnya.

maka Anda dapat melakukan:

$ bower init

(secara otomatis membuat file bower.json).

perhatikan bahwa semua pertanyaan harus diisi sebelumnya dengan konfigurasi Anda saat ini.

Kapan akan bertanya:

mengatur komponen yang saat ini diinstal sebagai dependensi? bilang iya,

Anda sekarang memiliki semua dependensi Anda di file bower.json baru (dan Anda dapat memeriksa apakah semuanya benar dengan bower2.json yang lama)

Sebastien Horin
sumber
Apa opsi registri yang disebutkan ketika melakukan ini - saya berasumsi perintah ini hanya melakukan hal-hal lokal. Saya memilih untuk merahasiakan pertanyaan saya itu tetapi ingin mengetahui apa artinya - apakah ada semacam registry internet bower. Saya hanya inline berpikir ini adalah bagaimana bower dapat melakukan npm menginstal semacam itu.
mendarat
2
@landed: itu akan menjadi registry paket bower ( bower.io/search ) HTH
FOR
Ini tidak berhasil bagi saya karena bower.jsontidak mencantumkan angular:'1.5.5'. Ini karena saya telah angular-animatemenginstal dan karena itu tergantung pada angular 1.5.5bower memutuskan untuk tidak termasuk angulardalam bower.json(mengingat itu akan menginstalnya ketika seseorang melakukan bower installini bower.json). Ini akan menjadi masalah jika seseorang menghapus angular-animatedari bower.jsonkasus mana bowertidak akan menginstal angularjuga karena itu tidak terdaftar.
Akash
35

Cara yang agak sulit adalah menjalankan bower list, mencari paket berlabel asing dan menambahkannya secara manual ke dependensi di bower.json.

Jika ada banyak paket luar , mungkin lebih mudah untuk menyelesaikannya dengan menjalankan bower initdan menjawab Ya untuk "mengatur komponen yang saat ini diinstal sebagai dependensi?". Ini akan mengambil arus Anda bower.json, membacanya dan kemudian membuat yang baru menggunakan informasi dari yang lama. Jadi dalam kasus yang ideal Anda akan memiliki file yang sama hanya dengan asing paket menambahkan.

Peringatan : Pertama, mungkin ada sesuatu yang hilang dalam proses (misalnya devDependecies). Kedua dalam versi terakhir dari bower (v1.2.7) ini tidak akan mempertahankan info paket saat ini! Saya merasa itu adalah bug. Namun Anda dapat menyimpan file lama dan (secara manual) menggabungkannya dengan yang dihasilkan.

Selain itu, Anda harus meminta opsi atau sesuatu dengan membuka masalah bower karena hal ini akan disambut oleh banyak pengembang.

Robin Pokorny
sumber
3
Catatan: bower 1.3.3 mempertahankan info paket saat ini.
Bill Keller
27

Anda dapat menggunakan pembaruan cek-bower (Anda perlu menginstal node.js di mesin Anda):

bower-check-updates adalah utilitas yang secara otomatis menyesuaikan bower.json dengan versi terbaru dari semua dependensi

bower-check-updates - adalah fork dari npm-periksa-pembaruan , jadi semuanya sama tetapi pembaruan bower.json, bukanpackage.json

npm install -g bower-check-updates
bower-check-updates -u
bower install 

Ini akan dipasang bower-check-updatessecara global, sehingga Anda dapat meluncurkannya dari mana saja.

PS untuk informasi lebih lanjut tentang permohonan npm-check-update lihat topik ini

Sergei Panfilov
sumber
Mungkinbower install
Tammon Tamás
@ ÁmonTamás bower installtidak memperbarui bower.json.
Sergei Panfilov
5
Penulis pembaruan cek-bower telah mencabut proyek demi npm-periksa-pembaruan, yang telah menambahkan dukungan untuk memperbarui bower.json.
congusbongus
2

Jika tidak ada banyak paket bower yang telah Anda instal, coba tulis bower install [package_name] --save. Ini hanya akan memperbarui file bower.json Anda.

superjisan
sumber
0

Setelah bower-check-updates -uAnda harus menjalankan, bower installbukannpm install

Ámon Tamás
sumber