Installare una dipendenza con Bower dall'URL e specificare la versione


154

Sto cercando di installare una dipendenza con Bower usando un URL. A partire dalla documentazione di Bower:

Bower offre diversi modi per installare i pacchetti:

    # Using the dependencies listed in the current directory's bower.json 
    bower install
    # Using a local or remote package 
    bower install <package>
    # Using a specific version of a package 
    bower install <package>#<version>
    # Using a different name and a specific version of a package 
    bower install <name>=<package>#<version> 

Dove <package>può essere uno dei seguenti:

  • Un nome associato a un pacchetto registrato con Bower, ad esempio jquery.
  • Un endpoint Git remoto, ad es git://github.com/someone/some-package.git. Può essere pubblico o privato.
  • Un endpoint locale, ovvero una cartella che è un repository Git.
  • Un endpoint abbreviato, ad es. someone/some-package (Predefinito su GitHub).
  • Un URL per un file, inclusi i file zip e tar. Il suo contenuto verrà estratto.

Tuttavia, quindi dice che tutti i tipi tranne l'URL consentono di specificare una versione.

Come posso specificare una versione per una dipendenza scaricata dall'URL?

Risposte:


194

Usa un endpoint git invece del nome di un pacchetto:

bower install https://github.com/jquery/jquery.git#2.0.3

8
Questo è un endpoint Git e specifica le versioni funzionanti. Se si specifica ad esempio direttamente un file Javascript, questo non funziona
Edmondo1984,

1
Gli URL sono consentiti con le versioni recenti di bower.
lfender6445,

A proposito: funziona svnanche con , ad esempiobower install crypto-js=svn+http://crypto-js.googlecode.com/svn/#~3.1.2 --save
Preexo

5
se si verifica un errore ENORESTARGET URL sources can't resolve targetsdurante il tentativo di installazione da git con un commit, è necessario passare https://github.com/jquery/jquerya https://github.com/jquery/jquery.git(aggiungi .git)
jakub.g

2
Bower normalizza il tag della versione per aggiungerlo come prefisso con un v? Quando lo faccio bower install https://github.com/my/repo.git#1.0.0funziona anche se è stato chiamato il tag effettivo che ho premuto v1.0.0.
Spinningarrow,

54

Se si utilizza il file bower.json per specificare le dipendenze:

{
     "dependencies": {
         ...
         "photo-swipe": "git@github.com:dimsemenov/PhotoSwipe.git#v3.0.x",

#bower 1.4 (tested with that version) can read repositorios with uri format

         "photo-swipe": "git://github.com/dimsemenov/PhotoSwipe.git#v3.0.x",

     }
}

Ricorda solo che bower cerca anche versioni e tag rilasciati in modo da poter puntare a quasi tutto e interpretare schemi di query di base come nell'esempio precedente. che recupererà l'ultimo aggiornamento minore della versione 3.0 (testato da Bower 1.3.5)

Aggiornamento , poiché la descrizione della domanda menziona anche l'uso solo di un URL e nessuna menzione di un repository github.

Un altro esempio è quello di eseguire questo comando usando l'URL desiderato, come:

bower install gmap3MarkerWithLabel=http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.0/src/markerwithlabel.js -S

quel comando scarica la tua libreria js inserisce {il tuo percorso di destinazione} /gmap3MarkerWithLabel/index.js e crea automaticamente una voce nel tuo file bower.json chiamata gmap3MarkerWithLabel: "..." Dopodiché, puoi eseguire solo bower update gmap3MarkerWithLabelse necessario.

La cosa divertente se esegui backwars del processo (aggiungi manualmente la voce in bower.json, quindi in Nome installazione bower) non funziona, ottieni un

bower ENOTFOUND Pacchetto gmapV3MarkerWithLabel non trovato


++ RE avvertimento su come eseguire il processo all'indietro
jacob

A partire dal 2018. Le persone dovrebbero allontanarsi dal pergolato, non più in fase di sviluppo, e utilizzare qualsiasi altro strumento di gestione dei pacchetti come Yarn. Abbiamo riscontrato problemi poiché molti sviluppatori di librerie di terze parti hanno smesso di rilasciare pacchetti di pergolato per andare in un modo standardizzato migliore. Il filato è molto più veloce del pergolato ed è davvero facile da migrare.
le0diaz,


21

Targeting di un commit specifico

Remoto (github)

Quando usi github, tieni presente che puoi anche scegliere come target un commit specifico (ad esempio, di un fork che hai creato e aggiornato) aggiungendo il suo hash di commit alla fine dell'URL del clone. Per esempio:

"dependencies": {
  "example": "https://github.com/owner_name/repo_name.git#9203e6166b343d7d8b3bb638775b41fe5de3524c"
}

Localmente (filesystem)

Oppure puoi scegliere come target un commit git nel tuo file system locale se usi la directory .git del tuo progetto, in questo modo (su Windows; nota le barre):

"dependencies": {
  "example": "file://C:/Projects/my-project/.git#9203e6166b343d7d8b3bb638775b41fe5de3524c"
}

Questo è un modo per testare il codice della libreria che hai eseguito il commit a livello locale ma non è stato ancora inviato al repository.


1
Grazie! Stavo usando un componente bower biforcuto con una patch, e continuava a installare l'ultimo secondo il file bower principale per quel repository. L'aggiunta dell'hash di commit mi ha permesso di scaricare la mia versione più recente.
elliottregan,

9

Solo un aggiornamento.

Ora, se si tratta di un repository github, usare solo una scorciatoia github è sufficiente se non ti dispiace la versione ovviamente.

Stenografia GitHub

$ bower install desandro/masonry

7

Ecco un pratico modo breve per installare un tag specifico o eseguire il commit da GitHub tramite bower.json.

{
  "dependencies": {
    "your-library-name": "<GITHUB-USERNAME>/<REPOSITORY-NAME>#<TAG-OR-COMMIT>"
  }
}

Per esempio:

{
  "dependencies": {
    "custom-jquery": "jquery/jquery#2.0.3"
  }
}

Solo per curiosità, è possibile scegliere come target una directory specifica dal repository? git@git-url.git#v0.1.0/directory?
Rhys,

7

Basta specificare l'endpoint uri che ha funzionato per me , bower 1.3.9

  "dependencies": {
    "jquery.cookie": "latest",
    "everestjs": "http://www.everestjs.net/static/st.v2.js"
  }

In esecuzione bower install, ho ricevuto il seguente output:

bower new           version for http://www.everestjs.net/static/st.v2.js#*
bower resolve       http://www.everestjs.net/static/st.v2.js#*
bower download      http://www.everestjs.net/static/st.v2.js

Puoi anche provare ad aggiornare Bower

  • npm update -g bower

Secondo la documentazione : sono supportati i seguenti tipi di URL:

http://example.com/script.js
http://example.com/style.css
http://example.com/package.zip (contents will be extracted)
http://example.com/package.tar (contents will be extracted)

3

Credo che specificare la versione funzioni solo per endpoint git. E non per quelli cartella / zip. Come quando punti bower su un file js / cartella / zip hai già specificato il pacchetto e la versione (tranne davvero per js). Perché un pacchetto ha bower.json con la versione in esso. Specificare una versione in 'installazione bower' ha senso quando si punta bower a un repository che può avere molte versioni di un pacchetto. Penso che possa essere solo un'idea.


3

Prova bower install git://github.com/urin/jquery.balloon.js.git#1.0.3 --savedove si 1.0.3trova il numero del tag che puoi ottenere leggendo il tag nelle versioni. Anche per la sostituzione dell'URL per git://consentire al sistema di connettersi.


0

Installa il pacchetto da git e lo salva nel blocco delle dipendenze bower.json.

  1. bower register package-name git-endpoint#version
  2. install package-name --save

( --savesalverà la versione del nome del pacchetto nel file bower.json all'interno del blocco delle dipendenze).

Riferimento

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.