¿Cómo instalar un módulo node.js sin usar npm?

115

Hay bastantes módulos que se enumeran en la página de github del nodo pero no se publican con el registro npm. Estos módulos no se pueden instalar con npm.

¿Cuál es la forma correcta de instalar estos módulos de nodejs después de clonarlos desde Git?

vivekian2
fuente

Respuestas:

73

Necesitas descargar su fuente desde github. Busque el archivo principal y luego inclúyalo en su archivo principal.

Puede encontrar un ejemplo de esto aquí> ¿Cómo instalar manualmente un módulo node.js?

Por lo general, debe encontrar la fuente y revisar el archivo package.json. Allí puede encontrar cuál es el archivo principal. Para que puedas incluir eso en tu solicitud.

Para incluir example.js en su aplicación. Cópielo en la carpeta de su aplicación y agregue esto en la parte superior de su archivo js principal.

var moduleName = require("path/to/example.js")

neebz
fuente
1
¿Es posible importar un script desde una URL externa (como var myscript = require("http://www.mywebsite.com/myscript.js"))? Parece que la requirefunción no funciona para URL externas.
Anderson Green
2
require es realmente síncrono, por lo que no, no funciona para URL externas.
Chris Tavares
Nota: debe eliminar las -masterbibliotecas adjuntas a github; como en change xxx-masterto xxx.
BAR
65

Estos módulos no se pueden instalar con npm.

En realidad, puede instalar un módulo especificando en lugar de un nombre una ruta local. Siempre que el repositorio tenga un package.jsonarchivo válido , debería funcionar.


Escribe npm -ly aparecerá una bonita ayuda así:

CLI:

...
install     npm install <tarball file>
                npm install <tarball url>
                npm install <folder>
                npm install <pkg>
                npm install <pkg>@<tag>
                npm install <pkg>@<version>
                npm install <pkg>@<version range>

                Can specify one or more: npm install ./foo.tgz bar@stable /some/folder
                If no argument is supplied and ./npm-shrinkwrap.json is 
                present, installs dependencies specified in the shrinkwrap.
                Otherwise, installs dependencies from ./package.json.

Lo que me llamó la atención fue: npm install <folder>

En mi caso, tuve problemas con el mrtmódulo, así que hice esto (en un directorio temporal)

  • Clonar el repositorio

     git clone https://github.com/oortcloud/meteorite.git
  • Y lo instalo globalmente con:

     npm install -g ./meteorite

Propina:

También se puede instalar de la misma manera el repositorio en un proyecto npm local con:

     npm install ../meteorite

Y también se puede crear un enlace al repositorio, en caso de que se necesite un parche en desarrollo:

     npm link ../meteorite
Tiberiu C.
fuente
1
el mas excelente. También estaba teniendo problemas con un módulo, así que lo bifurqué y lo cloné en un directorio hermano de mi proyecto web, actualicé todas sus dependencias a las últimas versiones y luego lo instalé en mi proyecto web con 'npm install ../ Broken_module_name Eso funcionó de maravilla. ¡Gracias!
Perry Tew
+1 pero no funciona si no tenemos acceso a la red para npm y el módulo con el que estamos instalando npm install <folder>tiene innumerables otras dependencias de npm.
Abdul Rauf
Si npm encuentra el paquete en node_modules, ya sea desde el alcance global (no estoy seguro aquí) o desde el local, no intentará descargarlo nuevamente. Esto significa que si todas las dependencias directas de un repositorio se pueden descargar previamente y copiar en la carpeta node_module, entonces funcionará.
Tiberiu C.
11

Descargue el código de github en el directorio node_modules

var moduleName = require("<name of directory>")

Deberias hacer eso.

si el módulo tiene dependencias y tiene un package.json, abra el módulo e ingrese npm install.

Espero que esto ayude

iancrowther
fuente
Creo que este código funciona si el archivo principal se llamaindex.js
R3tep
8

Puede clonar el módulo directamente en su proyecto local.

Iniciar terminal. cd en su proyecto y luego:

npm install https://github.com/repo/npm_module.git --save

Molnfront
fuente
1
La respuesta que estaba buscando.
Faisal Mq
¿Qué sucede cuando se cambia el paquete, cómo se actualiza a la última versión? ATM, la única "solución" que encontré fue eliminar el fodler de node_modules, eliminar la entrada package.json y volver a agregar, lo cual es un dolor ...
Predrag Stojadinović
1

Paso a paso:

  • Digamos que usted está trabajando en un proyecto use-gulpque utiliza ( requires) node_modulescomo gulpy gulp-util.
  • Ahora desea hacer algunas modificaciones a gulp-utillib y probarlo localmente con su use-gulpproyecto ...
  • gulp-utilProyecto de bifurcación en github \ bitbucket, etc.
  • Cambie a su proyecto: cd use-gulp/node_modules
  • Clonar gulp-utilcomo gulp-util-dev:git clone https://.../gulp-util.git gulp-util-dev
  • Ejecute npm installpara asegurarse de que las dependencias de gulp-util-devestán disponibles.
  • Ahora tienes un espejo de gulp-utilas gulp-util-dev. En su use-gulpproyecto, ahora puede reemplazar: require('gulp-util')...;llamar con: require('gulp-util-dev')para probar los cambios que realizó engulp-util-dev
Vikram
fuente