Accediendo a GitHub usando NPM en Sonatype Nexus

Actualmente estamos usando Nexus 2.10, y lo hemos utilizado con éxito como repository de npm.

Crear localmente a través de este proxy / mirror funciona bien, pero al intentar ejecutar npm install en Bamboo (que no tiene acceso a internet), falla, ya que algunas dependencies intentan llegar a GitHub para download algo, lo que falla.

 error 06-feb-2015 13:29:29 npm http 200 https://nexus.shdir.no/content/groups/npm-all/mkdirp/-/mkdirp-0.3.0.tgz error 06-feb-2015 13:29:30 npm http GET https://nexus.shdir.no/content/groups/npm-all/formidable error 06-feb-2015 13:29:30 npm http 200 https://nexus.shdir.no/content/groups/npm-all/formidable error 06-feb-2015 13:29:45 npm ERR! fetch failed https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz error 06-feb-2015 13:29:55 npm http GET https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz error 06-feb-2015 13:30:16 npm ERR! fetch failed https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz error 06-feb-2015 13:31:16 npm http GET https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz error 06-feb-2015 13:31:37 npm ERR! fetch failed https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz error 06-feb-2015 13:31:38 npm ERR! network connect ETIMEDOUT error 06-feb-2015 13:31:38 npm ERR! network This is most likely not a problem with npm itself error 06-feb-2015 13:31:38 npm ERR! network and is related to network connectivity. error 06-feb-2015 13:31:38 npm ERR! network In most cases you are behind a proxy or have bad network settings. error 06-feb-2015 13:31:38 npm ERR! network error 06-feb-2015 13:31:38 npm ERR! network If you are behind a proxy, please make sure that the error 06-feb-2015 13:31:38 npm ERR! network 'proxy' config is set properly. See: 'npm help config' error 06-feb-2015 13:31:38 error 06-feb-2015 13:31:38 npm ERR! System Windows_NT 6.1.7601 error 06-feb-2015 13:31:38 npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" error 06-feb-2015 13:31:38 npm ERR! cwd E:\bamboo\UTV-FP-JOB1\code error 06-feb-2015 13:31:38 npm ERR! node -v v0.10.17 error 06-feb-2015 13:31:38 npm ERR! npm -v 1.3.8 error 06-feb-2015 13:31:38 npm ERR! syscall connect error 06-feb-2015 13:31:38 npm ERR! code ETIMEDOUT error 06-feb-2015 13:31:38 npm ERR! errno ETIMEDOUT 

¿Cómo abordaría este problema? ¿Debo agregar cada repository de github / bitbucket a Nexus?

Solucionamos el problema descargando los binarys manualmente y agregándolos a nuestro server Apache. No será divertido cuando actualice dependencies, pero no debería ser tan malo. Solo 3 files

Estaría feliz de usar una mejor solución, si alguien sabe de una.

Tienes que hacer que Nexus esté disponible para tu server de Bamboo y configurar npm allí como lo hiciste en tu estación de trabajo. Dependiendo de dónde estén instalados Bamboo y Nexus en términos de topología de networking que puedan requerir diferentes pasos.

Idealmente, su gestor de repositorys y su server de CI comparten una location y una connection de alto performance entre sí. Esto permite descargas rápidas de packages proxy así como implementaciones rápidas.

Por ejemplo, puede hacer que su Nexus esté disponible en Internet público y bloquearlo para permitir solo el acceso autenticado y luego usarlo de Bamboo.