start see npmrc log home node.js npm

node.js - see - npmrc windows



¿Hay alguna manera de configurar múltiples registros en un solo archivo npmrc? (9)

Algunos pasos que puedes probar. (es cómo lo hacemos en mi lugar de trabajo)

  • Cree un grupo de registro con dos (o más) direcciones de origen del repositorio. Uno sería su privado interno y el otro un proxy para npmjs dando prioridad al interno.
  • Haga de este grupo su registro en el archivo .npmrc. De esta manera, npm siempre intentará obtenerlo del interno, si no se encuentra, obténgalo del proxy

Espero que ayude.

Aquí está mi problema. Tenemos un registro privado de NPM que solo funciona en VPN. Me gustaría tener un registro de respaldo https://registry.npmjs.org para que cuando esté fuera de VPN funcione sin problemas.

PD Actualmente estoy usando npmrc que hace un buen trabajo al cambiar entre archivos .npmrc como solución alternativa


Como han pasado un par de años y no parece posible hacer esto (usando npm solo), una solución a este problema es usar el Administrador de repositorio Nexus (de Sonatype). Nexus admite múltiples repositorios, le permite ordenarlos y también servidores proxy / cachés para mejorar la velocidad.

Existe una versión gratuita y una versión pro / de pago. La característica que admite esto se describe en: https://help.sonatype.com/repomanager3/node-packaged-modules-and-npm-registries

La información relevante se duplica a continuación, de modo que si / cuando la URL / enlace anterior deja de funcionar, la información todavía está aquí.

Un grupo de repositorios es la forma recomendada de exponer todos sus repositorios de registros npm del administrador de repositorios a sus usuarios, sin necesidad de ninguna otra configuración del lado del cliente. Un grupo de repositorio le permite exponer el contenido agregado de múltiples repositorios proxy y alojados con una URL a npm y otras herramientas.

Te permite crear registros privados de npm

Se puede usar un registro privado de npm para cargar sus propios paquetes, así como paquetes de terceros.

Y

Para reducir las descargas duplicadas y mejorar las velocidades de descarga para sus desarrolladores y servidores CI, debe proxy el registro alojado en https://registry.npmjs.org . Por defecto, npm accede a este registro directamente. También puede delegar cualquier otro registro que necesite.

Entonces, una lista rápida con viñetas de las cosas que debe hacer para que esto funcione es:

  • Instalar Nexus

  • Cree un repositorio local / privado (o señale su repositorio privado en otro servidor)

  • Cree un GRUPO que enumere su repositorio privado y el repositorio público.

  • Configure su archivo $ HOME / .npmrc para que apunte al "GRUPO" que acaba de crear.

  • Publique sus paquetes privados de npm en el repositorio local.

  • Los usuarios ahora pueden ejecutar una configuración única.

npm config set registry https://nexus/content/groups/GROUP

  • Luego, los usuarios pueden instalar paquetes públicos o privados a través de npm install . npm install my-private-package npm install lodash any-other-public-package

Y tanto sus paquetes públicos como privados se pueden instalar mediante un simple npm install . Nexus encuentra el paquete buscando cada repositorio configurado en el grupo y devuelve los resultados. Entonces, npm todavía piensa que solo hay un registro, pero detrás de la cortina hay múltiples repositorios que se están utilizando.

NOTA IMPORTANTE: Cuando publique sus componentes, deberá especificar el npm publish --registry https://nexus/content/repositories/private-repo my-private-package para que su paquete se publique en el repositorio correcto.


En la versión 4.4.1, si puede cambiar el nombre del paquete, use:

npm config set @myco:registry http://reg.example.com

Donde @myco es el alcance de su paquete.

Puede instalar el paquete de esta manera:

npm install @myco/my-package

Para más información: https://docs.npmjs.com/misc/scope



No es la mejor manera, pero si está utilizando Mac o Linux, incluso en Windows, puede establecer un alias para diferentes registros.

##############NPM ALIASES###################### alias npm-default=''npm config set registry https://registry.npmjs.org'' alias npm-sinopia=''npm config set registry http://localhost:4873/''


Para cualquiera que busque también una solución para la autenticación, agregaría en la solución de paquetes con alcance que puede tener varias líneas en su archivo .npmrc :

//internal-npm.example.com:8080/:_authToken=xxxxxxxxxxxxxxx //registry.npmjs.org/:_authToken=yyyyyyyyyy

Cada línea representa un registro NPM diferente


Puede tener múltiples registros para paquetes con ámbito en su archivo .npmrc . Por ejemplo:

@polymer:registry=<url register A> registry=http://localhost:4873/

Los paquetes bajo el alcance de @polymer se recibirán de https://registry.npmjs.org , pero el resto se recibirá de su NPM local.


Puede usar la sintaxis de múltiples repositorios para la entrada del registry en su archivo .npmrc :

registry=http://serverA.url/repository-uri/ //serverB.url/repository-uri/ //serverC.url/repository-uri/:_authToken=00000000-0000-0000-0000-0000000000000 //registry.npmjs.org/

Eso haría que su npm busque paquetes en diferentes servidores.