with tag note make how hacer create commits github npm npm-install git-fork npm-publish

tag - npm instala y crea un repositorio de github bifurcado



how to make a github release (4)

Actualización para aquellos que usan npm 5:

A partir de npm @ 5, los scripts de publicación previa están en desuso.

Utilice prepare pasos de prepare para la compilación y prepublishOnly para carga.

Encontré que agregar un "prepare": "npm run build" a los scripts solucionó todos mis problemas.

Esta no es una pregunta totalmente nueva, pero he estado buscando por un buen tiempo y tengo problemas para encontrar una solución.

Estoy usando un módulo para mi aplicación angular llamado angular-translate. Sin embargo, he tenido que hacer algunas pequeñas modificaciones en el código fuente para que todo funcione de la manera que me gustaría, y ahora quiero persistir esos cambios en la npm install . Un colega me sugirió que bifurcara el repositorio del código fuente y señalara mi repositorio bifurcado como una dependencia, que he intentado de esta manera, por ejemplo

npm install https://github.com/myRepo/angular-translate npm install https://github.com/myRepo/angular-translate/archive/master.tar.gz

El primero me da un directorio como este sin compilación. Solo un paquete.json, .npmignore y algunos archivos de descuento

-angular-translate .npmignore .nvmrc CHANGELOG.md package.json etc

La segunda npm install me da el repositorio completo, pero nuevamente no obtengo una compilación como cuando uso el comando npm install angular-translate . He visto algunas dudas sobre cómo ejecutar el script de prepublicación, pero no estoy seguro de cómo hacerlo al instalar todos los módulos. También intenté publicar la bifurcación como mi propio módulo en el registro npm, pero nuevamente no obtengo compilación, y no estoy seguro de que sea lo correcto ...

Pido disculpas por mi ignorancia sobre el tema. No tengo mucha experiencia con npm. Me encantaría recibir algunos comentarios sobre este tema. Parece que podría ser un problema bastante común cuando se necesitan hacer modificaciones al código fuente de un paquete. Tal vez hay una mejor solución? Gracias de antemano por tu ayuda.


Para aprovechar la excelente respuesta de @ RyanZim, el postinstall es definitivamente una opción válida para esto.

Realice uno de los siguientes:

  1. Actualice package.json en su repositorio bifurcado para agregar un elemento postinstall a los scripts. Aquí, ejecute lo que necesite para obtener el resultado compilado (Preferido).
  2. Actualice su package.json y agregue un postinstall que actualice el directorio necesario en node_modules.

Si ha bifurcado el repositorio de otra persona, puede valer la pena plantear un problema para ilustrar el problema de que instalar su paquete a través de GitHub no funciona, ya que no proporciona los medios necesarios para construir el script. A partir de ahí, pueden aceptar un RP para resolver esto con una postinstall, o pueden rechazarlo y usted puede hacer el # 2.


Pruebe npm install <ghusername>/<repoName> , donde <ghUsername> es su nombre de usuario de GitHub (sin la @ ) y <repoName> es el nombre del repositorio. Eso debería instalarlo correctamente. Lo más probable es que desee utilizar el --save o --save-dev con el comando de instalación para guardar la dependencia en su package.json .

Si eso no funciona correctamente, verifique el contenido de su archivo .npmignore .

No entre en pánico si el comando de instalación lleva mucho tiempo; la instalación desde un repositorio git es más lenta que la instalación desde el registro npm.

Editar:

Su problema es que, en su caso, dist/ no está comprometido con el repositorio (ya que está en .gitignore ). Ahí es donde vive el código real. dist/ se crea a partir de los archivos en src/ antes de que el paquete se publique en el registro npm, pero dist/ nunca se compromete con el repositorio.

Es feo, pero en este caso tendrá que eliminar dist/ del .gitignore y luego ejecutar:

npm run build git add . git commit git push

(Asegúrese de haber ejecutado npm install primero)

Entonces debería poder instalar desde github.

Puede haber otra forma de hacerlo utilizando un script postinstall a la postinstall , pero no estoy seguro de si eso es posible; Nunca lo he intentado.


Simplemente use el comando npm install git+https://[email protected]/myRepo/angular-translate.git . Gracias.