Pregunta ¿Cómo instalar un paquete npm desde GitHub directamente?


Intentando instalar módulos desde resultados de github en:

Error ENOENT en package.json.

Se reproduce fácilmente con express:

npm install https://github.com/visionmedia/express arroja un error.

npm install express trabajos.

¿Por qué no puedo instalar desde github?

Aquí está la salida de la consola:

npm http GET https://github.com/visionmedia/express.git
npm http 200 https://github.com/visionmedia/express.git
npm ERR! not a package /home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/tmp.tgz
npm ERR! Error: ENOENT, open '/home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/package/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Linux 3.8.0-23-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "https://github.com/visionmedia/express.git"
npm ERR! cwd /home/guym/dev_env/projects_GIT/proj/somename
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/package/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/guym/dev_env/projects_GIT/proj/somename/npm-debug.log
npm ERR! not ok code 0

594
2017-07-07 05:55


origen


Respuestas:


Porque https://github.com/visionmedia/express es la URL de una página web y no un módulo npm. Usa este sabor:

git+https://git@github.com/visionmedia/express.git

o este sabor si necesitas SSH:

git+ssh://git@github.com/visionmedia/express.git

799
2017-07-07 06:19



También puedes hacer npm install visionmedia/express para instalar desde Github

o

npm install visionmedia/express#branch

También se admite la instalación directa de Gist, Bitbucket, Gitlab y otros formatos especializados. Mira el npm install  documentación para todos ellos


467
2018-02-20 20:15



Si git no está instalado, podemos intentarlo

npm install --save https://github.com/Amitesh/gulp-rev-all/tarball/master

99
2017-09-07 10:15



También hay npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH} para usar una rama diferente.


42
2018-05-18 09:38



ACTUALIZACIÓN de septiembre de 2016

La instalación desde URL https github de vanilla ahora parece funcionar:

npm install https://github.com/fergiemcdowall/search-index.git

EDITAR: Hay un par de usuarios que comentan que no puedes hacer esto para todos los módulos porque estás leyendo desde un sistema de control de origen, que bien puede contener un código inválido / no compilado / defectuoso. Entonces para ser claro (aunque debería ser evidente): dado que el código en el repositorio está en un estado utilizable npm, ahora puedes instalar felizmente directamente desde github


31
2017-09-14 12:07



La respuesta actual actual de Peter Lyons no es relevante con las versiones recientes de NPM. Por ejemplo, usar el mismo comando que fue criticado en esta respuesta ahora está bien.

$ npm install https://github.com/visionmedia/express

Si tiene problemas continuos, podría ser un problema con cualquier paquete que estuviera usando.


29
2018-05-02 16:08



Los métodos están cubiertos bastante bien ahora en Documentación de instalación de npm así como las numerosas otras respuestas aquí.

npm install git+ssh://git@github.com:<githubname>/<githubrepo.git[#<commit-ish>]
npm install git+ssh://git@github.com:<githubname>/<githubrepo.git>[#semver:^x.x]
npm install git+https://git@github.com/<githubname>/<githubrepo.git>
npm install git://github.com/<githubname>/<githubrepo.git>
npm install github:<githubname>/<githubrepo>[#<commit-ish>]

Sin embargo, algo notable que ha cambiado recientemente es la adición de npm prepare script para reemplazar el prepublish guión.  Esto soluciona un problema de larga data donde los módulos instalados a través de git no ejecutaban el prepublish script y por lo tanto no completó los pasos de compilación que ocurren cuando un módulo se publica en el registro npm. Ver https://github.com/npm/npm/issues/3055.

Por supuesto, los autores del módulo necesitarán actualizar su paquete.json para usar el nuevo prepare directiva para que esto comience a funcionar.


12
2017-07-18 02:47



Instalarlo directamente:

npm install visionmedia/express

Alternativamente, puedes agregar "express": "github:visionmedia/express" al "dependencies" Sección de package.json archivo, luego ejecute:

npm install

11
2017-07-06 05:19