2012-03-03 28 views
8

Estoy tratando de obtener npm para instalar node-gitteh como una dependencia a través de npm install que lee desde package.json. Lamentablemente, este paquete npm está roto en el nodo 0.6.x, pero no hay problema, ya que hay un repositorio bifurcado que soluciona los problemas (https://github.com/hughsk/node-gitteh.git).npm instalar git bifurcado con el submódulo

Ahora el problema es que esta cesión temporal en forma de horquilla tiene un submódulo, por lo que si intento descargar el alquitrán de GitHub en el package.json:

, "dependencies" : { 
    "gitteh" : "https://github.com/hughsk/node-gitteh/tarball/master" 
} 

consigo un error que equivale a "no encontrado carpeta submódulo" . Si clono el mismo repos de forma manual y realizo una actualización de submódulo recursivo y un npm install desde la carpeta node-gitteh, funciona bien, pero no puedo encontrar la manera de conseguir que npm lo haga.

Respuesta

1

He tenido el mismo problema y hasta ahora solo he confiado en clonar mi módulo en node_modules y hacer una actualización de submódulo manualmente. Sería bueno tener npm manejar esto automáticamente.

En package.json hay un campo de secuencias de comandos (ver npm docs) Así podría hacer

"scripts":{"preinstall": "git submodule update -i -r"} 

Ver https://github.com/isaacs/octave-test para un ejemplo de esto.

+1

npm no copia '.gitmodules', por lo que solo funcionará localmente :( –

+0

En mi caso, npm pasa a darme un .gitmodules, pero eso aún no es suficiente sin los archivos .git para decirme qué versión de install. :( – Steve

+0

Mine mantiene el archivo '.gitmodules', pero eso es todo. Ninguno de los otros metadatos git se reduce y los directorios de submódulos simplemente no aparecen. – Chev

-2

De acuerdo con the docs, debe proporcionar la url de git en un formato especial. Además, necesita apuntar a git repo (la misma dirección que usaría para git clone), no el tarball proporcionado por github.

En su caso (GIT a través de HTTPS), sería:

, "dependencies" : { 
    "gitteh" : "git+https://github.com/hughsk/node-gitteh" 
} 

uso de este, NPM seleccionará por defecto la rama principal.

Cuestiones relacionadas