¿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?

Johnny
fuente
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.

Sindre Sorhus
fuente
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": "[email protected]: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

Nick Tomlin
fuente
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: [email protected]: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": "[email protected]: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": "[email protected]: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.

wibobm
fuente
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"
}
elado
fuente
10

usando bower.json:

"dependencies": {
    "jquery.slimscroll": "latest",
    "jQuery": "1.11",
    "fullPage.js": "[email protected]: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]"
obie
fuente