¿Cómo instalar el último estado (sin etiquetar) de un repositorio usando Bower?


163

tengo un repositorio muy pequeño en el que hago todo el trabajo de desarrollo en la rama maestra y uso etiquetas como puntos "estables" en la historia.

Supongo que, por defecto, Bower parece obtener lo último versión etiquetada de un repositorio. Estoy tratando de obtener la confirmación más reciente en la rama maestra.

He intentado ejecutar todos estos, en cada orden concebible:

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

También he intentado agregar latesta mi archivo bower.json:

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

Y luego corriendo:

bower update mypackage

No importa lo que parezca obtener siempre el último estado etiquetado.

¿Cómo obtengo el estado más reciente, más actualizado y sin etiquetar del proyecto?


1
Documentación completa github.com/bower/bower.json-spec
Jaider

Respuestas:


220

Especifique un git commit SHA en lugar de una versión:

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

Ejemplo:

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

También puede especificar una rama en lugar de un SHA, pero generalmente no se recomienda a menos que esté en desarrollo y controle todas las partes.


1
Sí, leí toda la discusión sobre todo eso en el rastreador de problemas de GH anoche e instalé bower # 0.9.3-rc0. Tiene razón señor. ¡Gracias!
Johnny

32
Por ahora, también puede usar en <git-url>#<branch-name>lugar de agregar un SHA-ID. Por lo tanto, también puede usar <git-url>#masterpara rastrear la rama maestra.
MKroehnert

3
Sin embargo, esto no parece funcionar para mi repositorio privado. Estoy tratando de especificar el id de confirmación. Devuelve un error "fatal: la referencia no es un árbol:". Parece que está tratando de encontrar la revisión en el repositorio git del contenedor.
Nilesh

1
Me estoy poniendo fatal: la referencia no es un árbol también. Bastante molesto.
Seiyria

¿Cómo fuerza la instalación de una versión anterior en el package.json si ya tiene una nueva?
SuperUberDuper

112

Sí, puede apuntar a la URL de git, o usar la abreviatura de name / repo (para repositorios de github):

bower.json

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

Más en los documentos

Como @roi señaló en los comentarios, puede usar la --savebandera para agregar automáticamente dependencias bower.json, por ejemplo,bower install terinjokes/docker-npmjs --save


1
y es posible seleccionar una versión?
Tjorriemorrie

12
@Tjorriemorrie Sí, puede seguir el <package>#<revision>.formato que figura en los documentos. Entonces, para usar la última versión de jQuery en la rama "maestra", debería hacerlo: git@github.com:jquery/jquery.git#mastero jquery/jquery#masterpara abreviar.
Nick Tomlin

66
Diría que tendrás más suerte usando el cli para ingresarlo en tu bower.json ..... bower install terinjokes / docker-npmjs --save
Roi

1
También podemos mencionar los lanzamientos / etiquetas usando el símbolo # así -xyz-components": "git@github.sample.com:username/reponame.git#0.4.5
Nitin


17

Si está utilizando un archivo bower.json, especifique la última versión de una rama con una línea en las dependencias o devDependencies según corresponda para la configuración de su proyecto:

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

Luego, cuando ejecuta bower installla última versión de esa rama está instalada. Eso sería rama bootstrap3de angular-uien este ejemplo.


Esto funciona localmente pero fallará en Heroku. Deberías usar el git://github.com/angular-ui/bootstrap.git#bootstrap3en su lugar.
Michael Yagudaev

13
bower install --save package-name#master

agrega esto:

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

10

usando bower.json:

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

dónde

"[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]"
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.