Come installare l'ultimo stato (senza tag) di un repository utilizzando bower?


163

Ho un repository molto piccolo in cui lavoro tutti gli sviluppatori nel ramo master e utilizzo i tag come punti "stabili" nella storia.

Immagino per impostazione predefinita Bower sembra recuperare l'ultima versione taggata di un repository. Sto cercando di ottenere il commit più recente nel ramo master.

Ho provato a eseguire tutti questi, in ogni ordine immaginabile:

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

Ho anche provato ad aggiungere latestal mio file bower.json:

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

E poi in esecuzione:

bower update mypackage

Indipendentemente da ciò che sembra ottenere sempre l'ultimo stato con tag.

Come posso ottenere lo stato del progetto più recente, aggiornato e senza tag?


1
Documentazione completa github.com/bower/bower.json-spec
Jaider

Risposte:


220

Specificare un git commit SHA anziché una versione:

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

Esempio:

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

Puoi anche specificare un ramo invece di un SHA, ma generalmente non è raccomandato a meno che non sia in sviluppo e controlli tutte le parti.


1
Ya, ho letto tutta la discussione su tutto ciò nel tracker dei problemi GH ieri sera e ho installato bower # 0.9.3-rc0. Hai ragione signore. Grazie!
Johnny,

32
Ormai, puoi anche semplicemente usare <git-url>#<branch-name>invece di aggiungere un ID SHA. Quindi puoi anche usare <git-url>#masterper tracciare il ramo principale.
MKroehnert,

3
Tuttavia, questo non sembra funzionare per il mio repository privato. Sto cercando di specificare l'ID commit. Restituisce un errore "fatale: il riferimento non è un albero:". Sembra che stia cercando di trovare la revisione nel repository git del container.
Nilesh,

1
Sto diventando fatale: anche il riferimento non è un albero. Abbastanza fastidioso.
Seiyria,

come forzate l'installazione di una versione precedente in package.json se ne avete già una nuova?
SuperUberDuper il

112

Sì, puoi puntare all'URL git o usare la scorciatoia nome / repository (per repository github):

bower.json

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

Altro nei documenti

Come notato da @roi nei commenti, è possibile utilizzare il --saveflag per aggiungere automaticamente dipendenze bower.json, ad esbower install terinjokes/docker-npmjs --save


1
e è possibile selezionare una versione?
Tjorriemorrie,

12
@Tjorriemorrie Sì, puoi seguire il <package>#<revision>.formato elencato nei documenti. Quindi, per usare l'ultima versione di jQuery nel ramo "master", dovresti farlo: git@github.com:jquery/jquery.git#mastero jquery/jquery#masterin breve.
Nick Tomlin,

6
direi che avrai più fortuna usando il cli per farlo entrare nel tuo bower.json ..... bower installa terinjokes / docker-npmjs --save
Roi

1
Possiamo anche menzionare le versioni / tag usando il simbolo # in questo modo -xyz-components": "git@github.sample.com:username/reponame.git#0.4.5
Nitin il


17

Se si utilizza un file bower.json si specifica l'ultima versione di un ramo con una linea nelle dipendenze o devDependencies in base alla configurazione del progetto:

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

Quindi, quando si esegue bower installl'ultima versione di quel ramo è installato. Questo sarebbe il ramo bootstrap3di angular-uiquesto esempio.


Funziona localmente ma fallirà su Heroku. Dovresti usare git://github.com/angular-ui/bootstrap.git#bootstrap3invece.
Michael Yagudaev,

13
bower install --save package-name#master

aggiunge questo:

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

10

utilizzando bower.json:

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

dove

"[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]"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.