Как обновить bower.json с установленными пакетами?


129

В моем проекте я установил bowerкомпоненты без возможности сохранения . Теперь я хотел бы обновить bower.json?

Как я могу обновить bower.json с установленными пакетами?


2
Отсутствие одношагового способа сделать это кажется серьезным недостатком. Поскольку есть команда удаления, кажется, что работать bower installбез нее --saveвсегда будет труднее и никогда не будет проще.
Крис

1
Если в вашем bower.json ничего нет, просто удалите его и введите bower initв консоли.
Жан-Люк Барат

Ответы:


146

Просто перечислите свои зависимости:

bower list

Затем вы должны запустить всю команду установки с параметром '--save' следующим образом:

bower install bootstrap --save

Это тяжелая работа, но если у вас есть тысяча зависимостей, не могли бы вы создать сценарий для автоматизации задачи.


Это отличный ответ. Спасибо!
jessegavin

1
Я обнаружил, что это проблематично всего с ~ 10 пакетами, поскольку не очевидно, какие пакеты были загружены как зависимости от других, из-за чего bower запрашивала номера версий. Даже при правильных ответах полученный файл bower.json был не совсем правильным. Я работал с ответом Себастьяна, который сработал для меня.
gb2d 02

Зависимости, которые не были объявлены в bower.json, идентифицируются "посторонним" тегом на консоли.
otaviodecampos

135

Небольшая хитрость, если вы не хотите писать для этого скрипт:

прежде чем что-либо делать, переименуйте, например, ваш bower.json в bower2.json.

тогда вы можете сделать:

$ bower init

(автоматически создайте файл bower.json).

обратите внимание, что все вопросы должны быть предварительно заполнены вашей текущей конфигурацией.

Когда вас спросят:

установить в настоящее время установленные компоненты как зависимости? скажи да,

Теперь у вас есть все ваши зависимости в новом файле bower.json (и вы можете проверить, все ли в порядке со старым bower2.json)


Какой параметр реестра он упоминает при этом - я предполагал, что эта команда будет выполнять только локальные действия. Я решил сохранить конфиденциальность, задав этот удобный вопрос, но хотел бы узнать, что это значит - существует ли какой-то реестр интернет-беседок. Я просто думаю, что именно так bower может делать что-то вроде установки npm.
приземлился

2
@landed: это будет реестр пакетов bower ( bower.io/search ) HTH
ЗА

У меня это не сработало, потому bower.jsonчто не перечислил angular:'1.5.5'. Это потому, что я angular-animateустановил, и поскольку это зависит от angular 1.5.5bower, решил не включать angularв bower.json(учитывая, что он все равно установит его, когда кто-то сделает bower installдля этого bower.json). Это будет проблемой , если кто - то удалить angular-animateиз bower.jsonв этом случае bowerне будет устанавливать angularслишком , так как его нет в списке.
Akash

35

Немного сложный способ - запустить bower list, найти пакеты, помеченные как посторонние, и добавить их вручную в зависимости в bower.json.

Если есть много посторонних пакетов, может быть проще обойти это, запустив bower initи ответив Да, чтобы «установить в настоящее время установленные компоненты как зависимости?». Он возьмет ваш текущий bower.json, прочитает его, а затем создаст новый, используя информацию из старого. Так что в идеальном случае у вас будет тот же файл, только с добавленными посторонними пакетами.

Предупреждение : Во-первых, что-то может быть потеряно в процессе (например devDependecies). Во-вторых, в последней версии bower (v1.2.7) это не сохранит информацию о текущих пакетах! Я чувствую, что это ошибка. Однако вы можете сохранить старый файл и (вручную) объединить его с созданным.

Кроме того, вы должны попросить вариант или что-то еще, открыв проблему с беседкой, поскольку это приветствуется многими разработчиками.


3
Примечание: bower 1.3.3 сохраняет информацию о текущих пакетах.
Билл Келлер

27

Вы можете использовать bower-check-updates (на вашем компьютере должен быть установлен node.js):

bower-check-updates это утилита, которая автоматически настраивает bower.json с учетом последней версии всех зависимостей

bower-check-updates - это форк npm-check-updates , так что все равно, но обновления bower.json, а неpackage.json

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

Он будет установлен bower-check-updatesглобально, поэтому вы можете запускать его откуда угодно.

PS для получения дополнительной информации о просьбах о npm-check-updates смотрите эту тему


Может бытьbower install
Ámon Tamás

@ ÁmonTamás bower installне обновлял bower.json.
Сергей Панфилов

5
Автор bower-check-updates отказался от проекта в пользу npm-check-updates, в которой добавлена ​​поддержка обновления bower.json.
congusbongus

2

Если у вас не так много пакетов bower, попробуйте написать bower install [package_name] --save. Это просто обновит ваш файл bower.json.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.