git - instalar - npm registry




paquete de instalación npm desde la subcarpeta repo github (2)

¿Es posible instalar el paquete npm desde github cuando el paquete se encuentra dentro de la subcarpeta?

Por ejemplo, tenemos el repositorio de Microsoft BotBuilder: https://github.com/Microsoft/BotBuilder

Pero necesito instalar el paquete dentro de la subcarpeta "Node / core /": https://github.com/Microsoft/BotBuilder/tree/master/Node/core/

Entonces, ¿cómo puedo instalarlo con npm?


Puede ser un poco fuera de tema, solo relevante para la pregunta

https://git-scm.com/book/en/v2/Git-Tools-Submodules

Los submódulos de Git son repositorios de Git que puede utilizar en otros repositorios (en adelante, denominados supermódulos). Dado que cada submódulo tiene la variedad habitual de características y etiquetas de ramas, el beneficio proviene de que cada supermódulo es una versión controlada, componentes conectables, que se pueden trabajar por separado o desarrollar junto con el supermódulo.

Algunos comandos útiles

Para agregar un submódulo, ejecute lo siguiente dentro de su supermódulo:

git submodule add <url-to-submodule-repo>

El (los) submódulo (s) todavía tienen que ser inicializados y recuperados desde el repositorio:

git submodule init git submodule update

Se puede clonar un supermódulo con submódulos y todos los submódulos se pueden ejecutar ejecutando:

git clone --recursive <url-to-supermodule>

Puede arrastrar los cambios en sentido ascendente a la rama de un submódulo ejecutando lo siguiente dentro del directorio de submódulo:

git fetch

Luego ejecuta lo siguiente para actualizar el código local:

git merge

Lo siguiente buscará y fusionará todos los submódulos en su supermódulo:

git submodule update --remote

Si desea realizar un seguimiento de una rama específica de un submódulo, puede utilizar lo siguiente:

git config -f .gitmodules submodule.<my-submodule>.branch fantastic_new_implementation

Si ha trabajado en sus supermódulos y submódulos y presiona su supermódulo, los cambios realizados en los submódulos solo existirán localmente y aquellos con los que está colaborando no sabrán de estos cambios. El siguiente comando comprobará si sus submódulos han sido empujados ANTES de intentar presionar su supermódulo

git push --recurse-submodules=check

Finalmente, aquí hay un comando ForEach útil, que nos permite ejecutar un comando para cada submódulo

git submodule foreach 'git checkout -b featureA


Añadir a package.json :

...
"scripts": {
  "postinstall": "mkdir BotBuilder; cd BotBuilder; git init; git remote add -f origin https://github.com/Microsoft/BotBuilder.git; git config core.sparseCheckout true; echo \"Node/core\" >> .git/info/sparse-checkout; git pull --depth=1 origin master; cd ..; npm i ./BotBuilder/Node/core/"
  ...
},
...

postinstall secuencia postinstall comandos postinstall se ejecuta después de instalar el paquete.

Y paso a paso:

  1. Hacer carpeta para clonar repo: mkdir BotBuilder
  2. cd BotBuilder a la carpeta: cd BotBuilder
  3. inicio git repo: git init
  4. configure git origin en Microsoft / BotBuilder repo: git remote add -f origin https://github.com/Microsoft/BotBuilder.git
  5. habilitar checkout disperso : git config core.sparseCheckout true
  6. agregue Node/core a la lista de verificación: echo "Node/core" >> .git/info/sparse-checkout
  7. extraer parte de repo: git pull --depth=1 origin master
  8. Ingrese a la carpeta de su aplicación: cd ..
  9. instala BotBuilder: npm i ./BotBuilder/Node/core/




npm