Como instalar o estado mais recente (sem etiqueta) de um repositório usando o bower?

163

Eu tenho um repositório muito pequeno no qual trabalho todos os desenvolvedores no ramo mestre e uso tags como pontos "estáveis" no histórico.

Eu acho que, por padrão, o Bower parece buscar a versão mais recente marcada de um repositório. Estou tentando obter a confirmação mais recente no ramo mestre.

Eu tentei executar tudo isso, em todas as ordens possíveis:

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

Eu também tentei adicionar latestao meu arquivo bower.json:

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

E então executando:

bower update mypackage

Não importa o que pareça sempre obter o último estado marcado.

Como obtenho o estado mais recente, mais atualizado e sem marcação do projeto?

Johnny
fonte
1
A documentação completa github.com/bower/bower.json-spec
Jaider

Respostas:

220

Especifique um SHA de confirmação do git em vez de uma versão:

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

Exemplo:

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

Você também pode especificar uma ramificação em vez de um SHA, mas isso geralmente não é recomendado, a menos que esteja em desenvolvimento e você controle todas as partes.

Sindre Sorhus
fonte
1
Sim, li toda a discussão sobre tudo isso no rastreador de problemas do GH na noite passada e instalei o caramanchão # 0.9.3-rc0. Você está correto, senhor. Obrigado!
6113 Johnny
32
Até agora, você também pode usar em <git-url>#<branch-name>vez de adicionar um SHA-ID. Então você também pode usar <git-url>#masterpara rastrear o ramo principal.
MKroehnert #
3
Porém, isso não parece funcionar para o meu repositório privado. Estou tentando especificar o ID de confirmação. Retorna um erro "fatal: reference não é uma árvore:". Parece que está tentando encontrar a revisão no repositório git do contêiner.
Nilesh
1
Estou sendo fatal: a referência também não é uma árvore. Um tanto irritante.
Seiyria
como você força a instalação de uma versão mais antiga no package.json se você já possui uma mais nova?
SuperUberDuper
112

Sim, você pode apontar para o URL do git ou usar a abreviação name / repo (para repositórios do github):

bower.json

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

Mais nos documentos

Como o @roi observou nos comentários, você pode usar o --savesinalizador para adicionar automaticamente dependências bower.json, por exemplobower install terinjokes/docker-npmjs --save

Nick Tomlin
fonte
1
e é possível selecionar uma versão?
Tjorriemorrie 22/03
12
@Tjorriemorrie Sim, você pode seguir o <package>#<revision>.formato listado nos documentos. Portanto, para usar a versão mais recente do jQuery no ramo "master", você faria: [email protected]:jquery/jquery.git#masterou jquery/jquery#masterabreviado.
Nick Tomlin
6
Eu diria que você terá melhor sorte usando o cli de obtê-lo em seu bower.json ..... pavilhão instalar terinjokes / Docker-npmjs --save
Roi
1
Também podemos mencionar os lançamentos / tags usando o símbolo # dessa maneira - #xyz-components": "[email protected]:username/reponame.git#0.4.5
Nitin
17

Se você estiver usando um arquivo bower.json, especifique a versão mais recente de uma ramificação com uma linha nas dependências ou devDependencies, conforme apropriado para a configuração do seu projeto:

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

Então, quando você executa bower installa versão mais recente desse ramo, é instalada. Isso seria ramo bootstrap3de angular-uineste exemplo.

wibobm
fonte
Isso funciona localmente, mas falhará no Heroku. Você deve usar o git://github.com/angular-ui/bootstrap.git#bootstrap3lugar.
Michael Yagudaev
13
bower install --save package-name#master

acrescenta isso:

"dependencies": {
  "package-name": "master"
}
elado
fonte
10

usando bower.json:

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

Onde

"[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
fonte