Как установить последнее (нетегированное) состояние репо с помощью Bower?


163

У меня очень маленький репо, в котором я делаю всю работу разработчика в основной ветке и использую теги как «стабильные» точки в истории.

Я полагаю, что по умолчанию Бауэр извлекает последнюю версию репо с тегами . Я пытаюсь получить самый последний коммит в ветке master.

Я пытался запустить все это в каждом возможном порядке:

bower cache-clean mypackage
bower install mypackage --force-latest
bower install mypackage --force --force-latest
bower install mypackage --force

Я также попытался добавить latestв мой файл bower.json:

"dependencies": {
  "mypackage": "latest"
}

А потом работает:

bower update mypackage

Независимо от того, что, кажется, всегда получает последнее помеченное состояние.

Как я могу получить самое последнее, самое актуальное, нетегированное состояние проекта?


1
Полная документация github.com/bower/bower.json-spec
Jaider

Ответы:


220

Укажите git commit SHA вместо версии:

bower install '<git-url>#<git-commit-sha>'

Пример:

bower install 'git://github.com/yeoman/stringify-object.git#d2895fb97d'

Вы также можете указать ветку вместо SHA, но это, как правило, не рекомендуется, если она не находится в разработке и вы контролируете все части.


1
Да, я прочитал всю дискуссию обо всем, что было в трекере GH прошлой ночью, и установил бауэр # 0.9.3-rc0. Вы правы, сэр. Спасибо!
Джонни

32
Теперь вы можете просто использовать <git-url>#<branch-name>вместо добавления SHA-ID. Таким образом, вы также можете использовать <git-url>#masterдля отслеживания основной ветви.
MKroehnert

3
Это, похоже, не работает для моего частного хранилища. Я пытаюсь указать идентификатор коммита. Он возвращает ошибку «роковая: ссылка не является деревом:». Похоже, он пытается найти ревизию в git-репозитории контейнера.
Nilesh

1
Я получаю фатальное: ссылка тоже не дерево. Довольно раздражает.
Сейрия

как заставить установить старую версию в package.json, если у вас уже есть более новая?
SuperUberDuper

112

Да, вы можете указать на URL-адрес git или использовать сокращение name / repo (для репозиториев github):

bower.json

{
  "name": "bower-test",
  "dependencies": {
    "dpm": "git@github.com:okfn/dpm.git",
    "docker-nmpjs": "terinjokes/docker-npmjs"
  }
}

Больше в документах

Как отметил @roi в комментариях, вы можете использовать --saveфлаг для автоматического добавления зависимостей bower.json, например,bower install terinjokes/docker-npmjs --save


1
и выбор версии возможен?
Tjorriemorrie

12
@Tjorriemorrie Да, вы можете следовать <package>#<revision>.формату, указанному в документации. Итак, чтобы использовать последнюю версию jQuery в ветке «master», вы должны сделать: git@github.com:jquery/jquery.git#masterили jquery/jquery#masterдля краткости.
Ник Томлин

6
я бы сказал, что вам повезет больше, используя cli, чтобы получить его в свой bower.json ..... bower install terinjokes / docker-npmjs --save
Roi

1
Мы также можем упомянуть выпуски / теги, используя символ #, например, -xyz-components": "git@github.sample.com:username/reponame.git#0.4.5
Нитин


17

Если вы используете файл bower.json, вы указываете последнюю версию ветки со строкой в ​​зависимости или devDependencies в зависимости от конфигурации вашего проекта:

"angular-bootstrap": "git@github.com:angular-ui/bootstrap.git#bootstrap3",

Затем при запуске bower installустанавливается последняя версия этой ветки. Это было бы отрасль bootstrap3из angular-uiданного примера.


Это работает локально, но не поможет Heroku. Вы должны использовать git://github.com/angular-ui/bootstrap.git#bootstrap3вместо этого.
Михаил Ягудаев

13
bower install --save package-name#master

добавляет это:

"dependencies": {
  "package-name": "master"
}

10

используя bower.json:

"dependencies": {
    "jquery.slimscroll": "latest",
    "jQuery": "1.11",
    "fullPage.js": "git@github.com:overbyte/fullPage.js.git#1d6bbac3d4c3b1d3d7d4096cdbcabd1c3914393f",
}

где

"[library name - in this case a forked version of fullpage.js]" : "[from git clone box in github][#commit number if required - without this you will get latest tagged version]"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.