Jak zainstalować najnowszy (nieoznakowany) stan repozytorium za pomocą bower?

163

Mam bardzo małe repozytorium, w którym wykonuję wszystkie prace deweloperskie w gałęzi master i używam tagów jako „stabilnych” punktów w historii.

Domyślam się, że Bower domyślnie pobiera najnowszą oznaczoną wersję repozytorium. Próbuję uzyskać najnowsze zatwierdzenie w gałęzi master.

Próbowałem uruchomić je wszystkie, w każdej możliwej kolejności:

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

Próbowałem również dodać latestdo mojego pliku bower.json:

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

A potem bieganie:

bower update mypackage

Bez względu na to, co się wydaje, zawsze uzyskuje się najnowszy stan oznaczony.

Jak uzyskać najnowszy, najbardziej aktualny, nieoznakowany stan projektu?

Jasio
źródło
1
Pełna dokumentacja github.com/bower/bower.json-spec
Jaider

Odpowiedzi:

220

Podaj git commit SHA zamiast wersji:

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

Przykład:

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

Możesz również określić gałąź zamiast SHA, ale generalnie nie jest to zalecane, chyba że jest w fazie rozwoju i kontrolujesz wszystkie części.

Sindre Sorhus
źródło
1
Tak, przeczytałem całą dyskusję na ten temat w narzędziu do śledzenia problemów GH zeszłej nocy i zainstalowałem altankę # 0.9.3-rc0. Pan ma rację. Dzięki!
Johnny
32
Teraz możesz też po prostu użyć <git-url>#<branch-name>zamiast dodawać identyfikator SHA. Możesz więc również użyć <git-url>#masterdo śledzenia gałęzi głównej.
MKroehnert
3
Wydaje się jednak, że to nie działa w moim prywatnym repozytorium. Próbuję określić identyfikator zatwierdzenia. Zwraca błąd „fatal: reference is not a tree:”. Wygląda na to, że próbuje znaleźć wersję w repozytorium git kontenera.
Nilesh
1
Dostaję fatalne: odniesienie też nie jest drzewem. Dość irytujące.
Seiyria,
jak wymusić instalację starszej wersji w pliku package.json, jeśli masz już nowszą?
SuperUberDuper
112

Tak, możesz wskazać adres URL git lub użyć skrótu nazwy / repozytorium (w przypadku repozytoriów github):

bower.json

{
  "name": "bower-test",
  "dependencies": {
    "dpm": "[email protected]:okfn/dpm.git",
    "docker-nmpjs": "terinjokes/docker-npmjs"
  }
}

Więcej w dokumentacji

Jak @roi zauważył w komentarzach, możesz użyć --saveflagi do automatycznego dodawania zależności bower.jsonnpbower install terinjokes/docker-npmjs --save

Nick Tomlin
źródło
1
i czy możliwy jest wybór wersji?
Tjorriemorrie
12
@Tjorriemorrie Tak, możesz zastosować <package>#<revision>.format wymieniony w dokumentacji. Tak więc, aby użyć najnowszej wersji jQuery w gałęzi „master”, należy zrobić: [email protected]:jquery/jquery.git#masterlub jquery/jquery#masterw skrócie.
Nick Tomlin,
6
powiedziałbym, że będziesz miał więcej szczęścia używając cli, aby umieścić go w swoim bower.json ..... bower install terinjokes / docker-npmjs --save
Roi
1
Możemy również wspomnieć o wydaniach / tagach, używając symbolu #, tak jak to jest -xyz-components": "[email protected]:username/reponame.git#0.4.5
Nitin
17

Jeśli używasz pliku bower.json, określ najnowszą wersję gałęzi za pomocą wiersza w zależnościach lub devDependencies, odpowiednio do konfiguracji projektu:

"angular-bootstrap": "[email protected]:angular-ui/bootstrap.git#bootstrap3",

Następnie po uruchomieniu bower installinstalowana jest najnowsza wersja tej gałęzi. To byłoby gałąź bootstrap3od angular-uiw tym przykładzie.

wibobm
źródło
Działa to lokalnie, ale zakończy się niepowodzeniem w Heroku. Zamiast tego powinieneś użyć git://github.com/angular-ui/bootstrap.git#bootstrap3.
Michael Yagudaev
13
bower install --save package-name#master

dodaje to:

"dependencies": {
  "package-name": "master"
}
elado
źródło
10

przy użyciu bower.json:

"dependencies": {
    "jquery.slimscroll": "latest",
    "jQuery": "1.11",
    "fullPage.js": "[email protected]:overbyte/fullPage.js.git#1d6bbac3d4c3b1d3d7d4096cdbcabd1c3914393f",
}

gdzie

"[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]"
obie
źródło