javascript - instalar - ¿Cómo registrar un paquete de git local en Bower?
install bower js (4)
Opción 1: registro público de Bower
Bower está diseñado principalmente para compartir el código público (del lado del cliente) de una manera "sin opiniones". El caso de uso principal, entonces, es tener un repositorio de acceso público (en GitHub) que esté register
d con un nombre y una url de repositorio de git. Acabo de hacer esto yo mismo:
bower register linksoup git://github.com/automatonic/linksoup
Esto es solo decirle al servidor Bower que cuando install linksoup
vaya y tome el código en el repositorio git://github.com/automatonic/linksoup
, y git://github.com/automatonic/linksoup
en el directorio de component
del proyecto local.
Si esto es lo que quiere hacer, simplemente configure un repositorio en github / etc., Presione su código allí y luego register
con la información del repositorio resultante.
Opción 2: dependencia privada
Hay muchas razones para no publicar su código en un repositorio de acceso público. Puede que no sea de código abierto, etc. Si su código de mypackage
no pretende ser público, entonces probablemente no debería register
en el servidor público Bower ... Además, incluso si pudiera register
un directorio local, solo trabaje en su máquina ... lo que anula el propósito de compartir el código a través de bower.
Si solo quieres que Bower administre una dependencia local y privada, entonces haré una blockhead''s solución de blockhead''s :
{
"name": "myproject",
"version": "1.0.0",
"dependencies": {
"jquery": "1.8.0",
"twitter/bootstrap": "2.1.1",
"mypackage": "file:///path/to/mypackage/.git"
}
}
Esto es solo decir que myproject
necesita mypackage
, y usar git clone para recuperarlo. Mi conjetura es que esto puede usar cualquier cosa que git pueda entender (incluidos los repositorios locales). Pero debe tener en cuenta que esto puede generar problemas para cualquier persona que trabaje en este código que no pueda acceder a su ruta local.
Mejor conjetura
Me parece que puede haber asumido que el bower register
era una operación local (le dice a Bower cómo encontrar una dependencia a través de algún tipo de registro local). Por lo que puedo decir, esto es solo un registro remoto y público, por lo que no es compatible.
También puede estar buscando una manera de hacer algo como una operación de enlace con npm . Es decir, trabajar en un módulo de dependencia sin tener siempre un ciclo de desarrollo que incluya una publicación.
Un pequeño detalle sobre la cantidad de personas involucradas y lo que intentaba lograr facilitaría una respuesta más específica.
¿Cómo puedo registrar un paquete local de git en bower?
Mi actual component.json es el siguiente
{
"name": "myproject",
"version": "1.0.0",
"dependencies": {
"jquery": "1.8.0",
"twitter/bootstrap": "2.1.1"
}
}
Sin embargo, también me gustaría agregar un paquete que he creado en C:/mypackage
que es un repositorio git con versiones etiquetadas. Cuando hago la bower install --save C:/mypackage
, la agrega correctamente al proyecto pero no la agrega a mi component.json.
Estoy intentando bower register mypackage C:/mypackage
pero sigue dándome
bower error Incorrect format
¿Qué estoy haciendo mal?
La gran idea con bower
es compartir fácilmente las dependencias de sus proyectos. Por lo tanto, el uso del repositorio local debe limitarse a las pruebas .
Una vez que entienda eso, debe saber que no es necesario, estrictamente, register
su paquete para usarlo como una dependencia.
Esto se debe al hecho de que Bower Depencency puede especificar una versión , una carpeta o un paquete . Así que puedes usar el repositorio local .
Definir como paquete de Bower.
Primero deberá definir su dependencia como un paquete de Bower :
# create the bower package
cd /path/to/you-need-me
bower init
# answer questions…
Añadir como dependencia del proyecto
Luego, en su proyecto principal, el que necesita la dependencia que you-need-me
, edite el archivo bower.json
para agregar (o expandir):
"dependencies": {
…
"you-need-me": "file:///path/to/you-need-me/.git/"
"you-need-me-windows": "C:/path/to/you-need-me-windows/.git/"
}
Entonces no da una versión, sino un punto final local de git
, es decir, el subdirectorio .git/
.
Instalar dependencia
En el proyecto man instala dependencias de bower con:
cd /path/to/main-project/
bower install
Fracaso
bower you-need-me#* ENOTFOUND Package /path/to/you-need-me/ not found
Verifique nuevamente su ruta y que apunte al directorio .git/
de su dependencia.
Éxito
Deberías conseguir algo como:
bower you-need-me#* not-cached file:///path/to/you-need-me/.git/#*
bower you-need-me#* resolve file:///path/to/you-need-me/.git/#*
bower you-need-me#* checkout master
bower you-need-me#* resolved file:///path/to/you-need-me/.git/#b18c753c6f
bower you-need-me#* install you-need-me#b18c753c6f
Escriba una entrada de blog sobre eso: Pruebe bower.json localmente antes de registrar el paquete .
Puede utilizar bower link
:
La funcionalidad de enlace permite a los desarrolladores probar fácilmente sus paquetes. La vinculación es un proceso de dos pasos.
El uso de un
bower link
en una carpeta de proyecto creará un enlace global. Luego, en algún otro paquete, elbower link <pkg>
creará un enlace en la carpeta de componentes que apunta al enlace creado anteriormente.Esto permite probar fácilmente un paquete porque los cambios se reflejarán inmediatamente. Tenga en cuenta que Bower no recuperará las dependencias del paquete vinculado.
Bower sobrescribirá el enlace al instalar / actualizar.
Puedes agregar cualquier repositorio de git de la siguiente manera:
{
"name": "myproject",
"version": "1.0.0",
"dependencies": {
"jquery": "1.8.0",
"twitter/bootstrap": "2.1.1",
"myrepo":"git://myrepo.com/myrepo"
}
}