Npm suena como una gran plataforma para usar dentro de una organización, curioso si es posible un repositorio privado, como con Nexus / Maven. No aparece nada en Google :(
Npm suena como una gran plataforma para usar dentro de una organización, curioso si es posible un repositorio privado, como con Nexus / Maven. No aparece nada en Google :(
Respuestas:
No creo que haya una manera fácil de hacer esto.
Un vistazo a la documentación de npm nos dice que es posible:
¿Puedo ejecutar mi propio registro privado?
¡Si!
La forma más fácil es replicar la base de datos del sofá y usar el mismo documento de diseño (o similar) para implementar las API.
Si configura la replicación continua desde el CouchDB oficial y luego configura su CouchDB interno como la configuración del registro, podrá leer los paquetes publicados, además de los privados, y por defecto solo se publicará internamente. Si luego desea publicar un paquete para que lo vea todo el mundo, simplemente puede anular la
--registry
configuración de ese comando.
También hay un excelente tutorial sobre cómo crear un repositorio privado de npm en el blog del reloj.
EDITAR (2017-02-26):
No es realmente nuevo, pero ahora hay planes pagados para alojar paquetes privados en NPM.
Con los años, NPM se ha convertido en un factor para muchas compañías que no pertenecen a Node.js, también, a través del enorme ecosistema frontend que se basa en NPM. Si su empresa ya está ejecutando Sonatype Nexus para alojar proyectos Java internamente, también puede usarlo para alojar paquetes NPM internos.
Otras opciones incluyen JFrog Artifactory e Inedo ProGet , pero no las he usado.
https://github.com/isaacs/npmjs.org/ : en la versión npm v1.0.26 puede especificar URL de repositorios git privados como una dependencia en sus archivos package.json. No lo he usado, pero me encantaría recibir comentarios. Aquí está lo que tú necesitas hacer:
{
"name": "my-app",
"dependencies": {
"private-repo": "git+ssh://git@yourgitserver.com:my-app.git#v0.0.1",
}
}
La siguiente publicación habla de esto: Debuggable: módulos npm privados
Hay un paquete npm fácil de usar para hacer esto. https://www.npmjs.org/package/sinopia
En pocas palabras, Sinopia es un servidor de repositorio npm privado / en caché que puede configurar con configuración cero.
La sinopia se puede usar para:
Verdaccio es lo que estaba buscando y merece su propia respuesta;) Es una bifurcación de Sinopia mantenida activamente (respuesta altamente votada aquí ). Es un registro npm como un paquete npm , y se puede encontrar
aquí: https://github.com/verdaccio/verdaccio ,
aquí: https://www.verdaccio.org ,
aquí: pnpm i -g verdaccio
o
aquí:docker run -it --rm --detach --name verdaccio -p 4873:4873 verdaccio/verdaccio
El 14 de abril (2015), se introdujeron los módulos privados npm .
Cuando paga módulos privados, puede:
- Aloja tantos paquetes privados como quieras
- Otorgue acceso de lectura o acceso de lectura y escritura para esos paquetes a cualquier otro usuario pagado
- Instale y use cualquier paquete al que otros usuarios pagos le hayan dado acceso de lectura
- Colabora en cualquier paquete al que otros usuarios pagos te hayan dado acceso de escritura
Por supuesto, no es gratis, actualmente 7 $ al mes, por usuario.
Y sigue siendo un servicio bastante nuevo. Por ejemplo, falta el soporte para las cuentas de la organización (a partir de junio de 2015):
Actualmente, los paquetes privados solo están disponibles para usuarios individuales, pero pronto se ofrecerá soporte para cuentas de organizaciones. Mientras tanto, siéntase libre de crear un usuario para su organización, y podemos actualizarlo a una organización cuando el soporte esté aquí.
Entonces, aunque no es perfecto, es el oficial solución npm para mantener paquetes privados, y eso en sí mismo hace que valga la pena mencionarlo.
ACTUALIZAR
Los paquetes privados de Npm ahora están disponibles, con planes para usuarios individuales y organizaciones :
- Número ilimitado de paquetes públicos y privados.
- $ 7 / mes / desarrollador
- Incluye un nombre de ámbito, basado en el nombre de la organización
- Publicar y controlar el acceso a @ org-name / foo
(descargo de responsabilidad: ni siquiera remotamente afiliado de ninguna manera con npm, Inc. )
Supongo que este hilo necesita una actualización. Si observa cualquiera de los registros npm que están disponibles, son extremadamente pesados y necesitan couchdb. Gemfurry y otros necesitan que salgas de repositorios públicos. Algunos de los npm como shadow-npm no tienen confirmaciones recientes .
Entonces, encontramos a Reggie . Tiene una buena actividad de confirmación, extremadamente fácil de instalar y usar y tiene un soporte comunitario bastante bueno . Es extremadamente liviano y no tiene que lidiar con couchdb, etc.
Perdóname si no entiendo bien tu pregunta, pero aquí está mi respuesta:
Puede crear un módulo npm privado y usar los comandos normales de npm para instalarlo. La mayoría de los usuarios de node.js usan git como su repositorio, pero usted puede usar cualquier repositorio que funcione para usted.
Una vez que haya hecho su paquete, use
npm install * tarball_url *
Un poco tarde para la fiesta, pero NodeJS (a partir del ~ 14 de noviembre, supongo) admite repositorios corporativos de NPM: puede encontrar más información en su sitio oficial .
A simple vista, parece que npmE permite la duplicación del repositorio de NPM, es decir, buscará paquetes en el repositorio de NPM real si no puede encontrar uno en su repositorio interno. Parece muy útil!
npm Enterprise es una solución local para compartir y distribuir de manera segura módulos JavaScript dentro de su organización, del equipo que mantiene npm y el registro público npm. Está diseñado para equipos que necesitan:
Fácil intercambio interno de módulos privados. Mejor control del flujo de trabajo de desarrollo e implementación. Seguridad más estricta en torno a la implementación de módulos de código abierto. Cumplimiento de los requisitos legales para alojar código local.
npmE es un registro npm que funciona con el mismo cliente npm estándar que ya usa, pero proporciona las características que necesitan las organizaciones más grandes que ahora están adoptando con entusiasmo el nodo. Está construido por npm, Inc., el patrocinador del proyecto de código abierto npm y el anfitrión del registro público npm.
Lamentablemente, no es gratis. Puede obtener una versión de prueba, pero es un software comercial. Esto no es tan bueno para los desarrolladores en solitario, pero si eres un desarrollador en solitario, tienes GitHub :-)
Esta publicación habla sobre cómo configurar un registro privado
Replicando npmjs.org use el siguiente comando
curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "continuous":true, "create_target":true}' -H "Content-Type: application/json"
Tenga "continuous":true
en cuenta que hay en el comando, esto utiliza la API _changes de CouchDB y extraerá cualquier cambio nuevo cuando se notifique esta API.
Si alguna vez desea detener estas réplicas, puede agregarlas fácilmente "cancel":true
. Entonces el guión sería
curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "continuous":true, "create_target":true, "cancel":true}' -H "Content-Type: application/json"
A continuación, vaya a npmjs.org Léame para instalar NPM (asegúrese nodejs
y git
está instalado). Golpe es todos los pasos
git clone git://github.com/isaacs/npmjs.org.git
cd npmjs.org
sudo npm install -g couchapp
npm install couchapp
npm install semver
couchapp push registry/app.js http://localhost:5984/registry
couchapp push www/app.js http://localhost:5984/registry
Puede que llegue un poco tarde a la fiesta, pero cualquiera de estos dos podría funcionar para ti:
También puede usar Aragon Package Manager si prefiere un enfoque descentralizado: