Jak zaktualizować bower.json z zainstalowanymi pakietami?

129

W moim projekcie zainstalowałem bowerkomponenty bez opcji zapisu . Teraz chciałbym zaktualizować bower.json?

Jak mogę zaktualizować bower.json z zainstalowanymi pakietami?

Konga Raju
źródło
2
Brak jednego kroku, aby to zrobić, wydaje się dość brakiem. Ponieważ istnieje polecenie odinstalowania, wydaje się, że uruchomienie bower installbez --saveniego zawsze byłoby trudniejsze i nigdy nie było łatwiejsze.
Chris
1
Jeśli nie masz nic w swoim bower.json, po prostu usuń go i wpisz bower initw konsoli.
Jean-Luc Barat

Odpowiedzi:

146

Po prostu wymień swoje zależności:

bower list

Następnie powinieneś uruchomić wszystkie polecenia instalacji z param '--save' w ten sposób:

bower install bootstrap --save

To ciężka praca, ale jeśli masz tysiąc zależności, czy możesz stworzyć skrypt automatyzujący zadanie.

Helder Robalo
źródło
To świetna odpowiedź. Dzięki!
jessegavin
1
Zauważyłem, że jest to problematyczne przy zaledwie ~ 10 pakietach, ponieważ nie jest oczywiste, które pakiety zostały pobrane jako zależności innych, co spowodowało, że bower poprosił o numer wersji. Nawet z poprawnymi odpowiedziami wynikowy plik bower.json nie był całkiem poprawny. Pracowałem z odpowiedzią Sebastiena, która zadziałała dla mnie.
gb2d
Zależności, które nie zostały zadeklarowane w bower.json, są identyfikowane za pomocą tagu „extraneous” na konsoli.
otaviodecampos
135

Mała sztuczka, jeśli nie chcesz pisać do tego scenariusza:

zanim cokolwiek zrobisz, zmień na przykład nazwę bower.json na bower2.json.

wtedy możesz:

$ bower init

(automatycznie utwórz plik bower.json).

pamiętaj, że wszystkie pytania powinny być wstępnie wypełnione aktualną konfiguracją.

Kiedy zapyta Cię:

ustawić aktualnie zainstalowane komponenty jako zależności? Powiedz tak,

Masz teraz wszystkie swoje zależności w nowym pliku bower.json (i możesz sprawdzić, czy wszystko jest w porządku ze starym bower2.json)

Sebastien Horin
źródło
Jaka jest opcja rejestru, o której wspomina podczas wykonywania tej czynności - założyłem, że to polecenie będzie wykonywać tylko lokalną czynność. Postanowiłem zachować prywatność z tym przydatnym pytaniem, ale chciałbym się dowiedzieć, co to oznacza - czy istnieje jakiś internetowy rejestr altan. Po prostu myślę w linii, w jaki sposób altana może zrobić coś w rodzaju instalacji npm.
wylądował
2
@landed: to byłby rejestr pakietów bower ( bower.io/search ) HTH
FOR
To mi bower.jsonsię nie udało, ponieważ nie wymieniałemangular:'1.5.5' . Wynika to z faktu, że angular-animatezainstalowałem i ponieważ zależy to od angular 1.5.5altan, zdecydowałem się nie uwzględniać angularw bower.json(biorąc pod uwagę, że i tak zainstaluje, gdy ktoś zrobi bower installto bower.json). To będzie problemem, jeśli ktoś usuń angular-animateze bower.jsonw takim przypadku bowernie będzie instalować angularzbyt ponieważ jej nie ma na liście.
Aakash
35

Trochę żmudnym sposobem jest uruchomienie bower list, wyszukanie pakietów oznaczonych jako zbędne i dodanie ich ręcznie do zależności w bower.json.

Jeśli jest ich dużo dodatkowych pakietów, łatwiejsze może być obejście tego problemu, uruchamiając bower initi odpowiadając Tak, aby „ustawić aktualnie zainstalowane komponenty jako zależności?”. Spowoduje to pobranie aktualnego bower.json, przeczytanie go, a następnie utworzenie nowego, korzystając z informacji ze starego. Więc w idealnym przypadku będziesz mieć ten sam plik tylko z dodanymi nieistotnymi pakietami.

Ostrzeżenie : po pierwsze, w procesie może coś zostać utracone (np devDependecies.). Po drugie, w ostatniej wersji bower (v1.2.7) nie zachowa to informacji o aktualnych pakietach! Czuję, że to błąd. Możesz jednak zapisać stary plik i (ręcznie) połączyć go z wygenerowanym.

Powinieneś także poprosić o opcję lub coś przez otwierając problem z altanami, ponieważ wielu programistów byłoby to mile widziane.

Robin Pokorny
źródło
3
Uwaga: bower 1.3.3 zachowuje aktualne informacje o pakietach.
Bill Keller
27

Możesz użyć bower-check-updates (musisz zainstalować node.js na swoim komputerze):

bower-check-updates to narzędzie, które automatycznie dostosowuje plik bower.json do najnowszej wersji wszystkich zależności

bower-check-updates - to rozwidlenie npm-check-updates , więc to wszystko to samo, ale aktualizacje bower.jsonzamiastpackage.json

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

Spowoduje to zainstalowanie się bower-check-updatesglobalnie, dzięki czemu będzie można uruchomić go z dowolnego miejsca.

PS, aby uzyskać więcej informacji na temat próśb npm-check-updates, zobacz ten temat

Siergiej Panfiłow
źródło
Możebower install
Ámon Tamás
@ ÁmonTamás bower installnie aktualizował bower.json.
Siergiej Panfiłow
5
Autor bower-check-updates wycofał projekt na rzecz npm-check-updates, który dodał obsługę aktualizacji bower.json.
congusbongus
2

Jeśli nie zainstalowałeś tylu pakietów bower, spróbuj napisać bower install [package_name] --save. Spowoduje to po prostu zaktualizowanie pliku bower.json.

superjisan
źródło
0

Po bower-check-updates -umusisz biec bower installzamiastnpm install

Ámon Tamás
źródło