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 NPM, pero de acuerdo con la documentación, eso implica muchas molestias.
¿Puedo instalar un módulo NPM que se encuentra en el sistema de archivos local, o tal vez incluso desde git?
npm install --from-git git@server:project
node.js
npm
package
npm-private-modules
futlib
fuente
fuente
npm install
todos los archivos se copien en el directorio de su proyecto. Por lo tanto, las rutas en lasrequire
declaraciones serán relativas solo al directorio de su proyecto.install
¿no se instalaría allí y no para el proyecto para el que desea usarlo?#<ref>
al final de la url git, por ejemplogit://github.com/visionmedia/express.git#v0.0.1
; (b) Para estar seguro, agregue"private": true
al paquete.json de sus repositorios privados. Esto asegurará que npm nunca le permita publicar accidentalmente su salsa secreta en el registro oficial de npm. (de acuerdo con debuggable.com/posts/… )npm i git+http://all/the/things.git
aunquegit clone http://all/the/things.git
funcione bienEn sus módulos privados npm agregue
a su package.json
Luego, para hacer referencia al módulo privado en otro módulo, use esto en su package.json
fuente
"private": true
parte no es necesaria, pero ayudará a evitar que su repositorio privado se publique accidentalmente en el registro público de npm.npm install <git remote url>
sección, hay opciones comoGIT_ASKPASS
yGIT_SSH
.Un ejemplo de uso para elegir una clave que no sea la id_rsa predeterminada:GIT_SSH_COMMAND='ssh -i ~/.ssh/custom_ident' npm install git+ssh://[email protected]:npm/npm.git
¡Sí tu puedes! De los documentos https://docs.npmjs.com/cli/install
¿No es brillante npm?
fuente
tar -czf my-package.tar.gz dist
(suponiendo que sudist
carpeta también tenga unpackage.json
archivo adecuado ), puede hacerlonpm install ../my-lib/my-package.tar.gz
desde su otro proyecto.Actualización enero 2016
Además de otras respuestas , a veces existe el escenario en el que desea tener módulos privados disponibles en un contexto de equipo.
Tanto Github como Bitbucket admiten el concepto de generar una clave API de equipo . Esta clave API se puede usar como contraseña para realizar solicitudes API como este equipo.
En sus módulos privados npm agregue
a su package.json
Luego, para hacer referencia al módulo privado en otro módulo, use esto en su package.json
donde nombre del equipo = myteamname y API Key = aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4
Aquí hago referencia a un repositorio de bitbucket, pero también es casi idéntico usando github.
Finalmente, como alternativa, si realmente no le importa pagar $ 7 por mes (al momento de la escritura), ahora puede tener módulos NPM privados listos para usar .
fuente
FWIW: Tuve problemas con todas estas respuestas al tratar con el repositorio de una organización privada.
Lo siguiente funcionó para mí:
Por ejemplo:
No estoy completamente seguro de por qué las otras respuestas no funcionaron para mí en este caso, porque son lo que probé primero antes de llegar a Google y encontrar esta respuesta. Y las otras respuestas son lo que he hecho en el pasado.
Esperemos que esto ayude a alguien más.
fuente
https://
, y asegúrese de que no se necesita la contraseña en la segunda ejecución. ¡Entonces está listo!)Tuve el mismo problema, y después de buscar, encontré a Reggie ( https://github.com/mbrevoort/node-reggie ). Se ve bastante sólido. Permite la publicación ligera de módulos NPM en servidores privados. No es perfecto (sin autenticación después de la instalación), y todavía 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)
luego cd en el directorio de tu módulo y ...
finalmente, puede instalar paquetes de reggie simplemente usando esa url ya sea en un comando de instalación npm directo o desde un paquete.json ... así
o..
fuente
Estructura tu código de manera accesible como a continuación. Si esto es posible para ti.
Dentro de MainApp @ NodProjs \ Apps \ MainApp \
Es posible que deba actualizar package.json como:
Esto funcionó para mi situación.
fuente
Npm ahora proporciona módulos alojados privados ilimitados por $ 7 / usuario / mes utilizado de esta manera
en su paquete conjunto json
"name": " @username/private-project"
luego para requerir su proyecto:
fuente
Comenzando con la respuesta de arcseldon , descubrí que el nombre del equipo era necesario en la URL de la siguiente manera:
Y tenga en cuenta que la clave API solo está disponible para el equipo, no para usuarios individuales.
fuente
Configuración para instalar desde el repositorio público de Github, incluso si la máquina está bajo firewall:
fuente
Utilizo lo siguiente con un repositorio privado de github:
fuente
Esto era lo que estaba buscando :
fuente
Puede usar Verdaccio para este propósito, que es un ligero registro privado de proxy npm integrado en Node.js. También es gratuito y de código abierto. Al usar Verdaccio no implica tanta molestia como lo haría un registro npm privado simple.
Puede encontrar información detallada sobre cómo instalarlo y ejecutarlo en su sitio web, pero estos son los pasos:
Se requiere
node >=8.x
.También tiene una ventana acoplable, por lo que puede publicarla fácilmente en su ventana acoplable disponible públicamente y, ¡listo!
fuente
Muy simple -
De hecho, establece
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 se ha establecido de forma predeterminada se puede ver por:
npm config list
fuente