mac last instalar como node.js npm package npm-private-modules

node.js - instalar - npm last version



¿Cómo instalar un módulo NPM privado sin mi propio registro? (12)

¿Puedo instalar un paquete NPM que se encuentre en el sistema de archivos local, o incluso desde git?

¡Sí tu puedes! De los documentos https://docs.npmjs.com/cli/install

Un paquete es:

  • a) una carpeta que contiene un programa descrito por un archivo package.json
  • b) un tarball comprimido que contiene (a)
  • c) una url que resuelve a (b)
  • d) un <name>@<version> que se publica en el registro con (c)
  • e) un <name>@<tag> que apunta a (d)
  • f) un <name> que tiene una etiqueta "más reciente" que satisface (e)
  • g) un <git remote url> que se resuelve en (b)

¿No es npm brillante?

Tomé un código compartido y lo puse en un módulo NPM, uno que no quiero cargar en el registro central. La pregunta es, ¿cómo lo instalo desde otros proyectos?

La forma obvia es probablemente configurar mi propio registro de NPM, pero de acuerdo con la documentación, eso implica muchos problemas.

¿Puedo instalar un módulo NPM que se encuentre en el sistema de archivos local, o tal vez incluso desde git?

npm install --from-git git@server:project


Comenzando con la respuesta de arcseldon , encontré que el nombre del equipo era necesario en la URL así:

npm install --save "git+https://myteamname@[email protected]/myteamname/myprivate.git"

Y tenga en cuenta que la clave API solo está disponible para el equipo, no para usuarios individuales.


Config para instalar desde el repositorio público de Github, incluso si la máquina está bajo firewall:

dependencies: { "foo": "https://github.com/package/foo/tarball/master" }


En sus módulos npm privados agregue

"private": true

a su paquete.json

Luego, para hacer referencia al módulo privado en otro módulo, use esto en su package.json

{ "name": "myapp", "dependencies": { "private-repo": "git+ssh://[email protected]:myaccount/myprivate.git#v1.0.0", } }


Estructure su código de manera accesible como a continuación. Si esto es posible para ti.

  • NodeProjs / Apps / MainApp / package.json

  • NodeProjs / Modules / DataModule / package.json

Dentro de MainApp @ NodProjs / Apps / MainApp /

npm install --S ../../Modules/DataModule

Es posible que necesite actualizar package.json como:

"dependencies": { "datamodule": "../../Modules/DataModule" }

Esto funcionó para mi situación.


FWIW: Tuve problemas con todas estas respuestas al tratar con un repositorio de una organización privada.

Lo siguiente me funcionó:

npm install -S "git+https://[email protected]/orgname/repositoryname.git"

Por ejemplo:

npm install -S "git+https://[email protected]/netflix/private-repository.git"

No estoy completamente seguro de por qué las otras respuestas no funcionaron para mí en este caso, porque son las que probé antes de golpear a Google y encontrar esta respuesta. Y las otras respuestas son las que he hecho en el pasado.

Esperemos que esto ayude a alguien más.


Muy simple -

npm config set registry https://path-to-your-registry/

En realidad, establece el registry = "https://path-to-your-registry" esta línea en /Users/<ur-machine-user-name>/.npmrc

Todo el valor que ha establecido explícitamente o que se ha establecido de forma predeterminada se puede ver en la npm config list


Npm ahora proporciona módulos alojados privados ilimitados por $ 7 / usuario / mes utilizados como tal

cd private-project npm login

en su paquete json set "name": " @username/private-project"

npm publish

entonces para requerir su proyecto:

cd ../new-project npm install --save @username/private-project


Tuve el mismo problema, y ​​después de buscar un poco, encontré a Reggie ( https://github.com/mbrevoort/node-reggie ). Parece bastante sólido. Permite la publicación ligera de módulos NPM a servidores privados. No es perfecto (no hay autenticación en la instalación), y aún es muy joven, pero lo probé localmente y parece hacer lo que dice que debería hacer.

Eso es ... (y esto solo de sus documentos)

npm install -g reggie reggie-server -d ~/.reggie

Luego cd en su directorio de módulos y ...

reggie -u http://<host:port> publish reggie -u http://127.0.0.1:8080 publish

finalmente, puede instalar paquetes desde reggie simplemente usando esa url en un comando directo de npm install, o desde dentro de package.json ...

npm install http://<host:port>/package/<name>/<version> npm install http://<host:port>/package/foo/1.0.0

o..

dependencies: { "foo": "http://<host:port>/package/foo/1.0.0" }


Uso lo siguiente con un repositorio privado de github:

npm install github:mygithubuser/myproject


Actualización enero 2016

Además de otras respuestas , a veces existe el escenario donde desea tener módulos privados disponibles en un contexto de equipo.

Tanto Github como Bitbucket admiten el concepto de generar una clave de API de equipo. Esta clave de API se puede utilizar como contraseña para realizar solicitudes de API como este equipo.

En sus módulos npm privados agregue

"private": true

a su paquete.json

Luego, para hacer referencia al módulo privado en otro módulo, use esto en su package.json

{ "name": "myapp", "dependencies": { "private-repo": "git+https://myteamname:[email protected]/myprivate.git", } }

donde nombre de equipo = myteamname y clave de API = aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4

Aquí hago referencia a un repositorio de bitbucket, pero es casi idéntico al usar github también.

Finalmente, como alternativa, si realmente no le importa pagar $ 7 por mes (al momento de escribir), ahora puede tener módulos NPM privados listos para usar .


cd somedir npm install .

o

npm install path/to/somedir

somedir debe contener el package.json dentro de él.

También sabe sobre git:

npm install git://github.com/visionmedia/express.git