paquetes last descargar github npm npm-install node-modules

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



package json version (13)

Tratar de instalar módulos desde github resulta en:

Error ENOENT en package.json.

Se reproduce fácilmente utilizando Express:

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

npm install express funciona.

¿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! <[email protected]> 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


ACTUALIZACIÓN septiembre 2016

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

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

EDITAR: hay un par de usuarios comentando que no puede hacer esto para todos los módulos porque está leyendo desde un sistema de control de origen, que bien puede contener código no válido / no compilado / con errores. Para que quede claro (aunque no debería ser dicho): dado que el código en el repositorio está en un estado de uso npm , ahora puede instalarlo directamente desde github.


Instálalo directamente:

npm install visionmedia/express

Alternativamente, puede agregar "express": "github:visionmedia/express" a la sección de "dependencies" del archivo package.json , luego ejecute:

npm install


La forma general de la sintaxis es

<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]

lo que significa para tu caso será

npm install git+ssh://[email protected]/visionmedia/express.git

De los documentos de npmjs:

npm instalar:

Instala el paquete desde el proveedor de git alojado, clonándolo con git. Para una url remota de git completa, solo se intentará esa URL.

<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish>

| #semver:] es uno de git, git + ssh, git + http, git + https, o git + file.

Si se proporciona #, se usará para clonar exactamente esa confirmación. Si commit-ish tiene el formato #semver :, puede ser cualquier rango semver válido o versión exacta, y npm buscará cualquier etiqueta o referencia que coincida con ese rango en el repositorio remoto, como lo haría para una dependencia de registro. Si ninguno # o

semver: se especifica, luego se utiliza master.

Si el repositorio utiliza submódulos, esos submódulos también se clonarán.

Si el paquete que se está instalando contiene una secuencia de comandos de preparación, se instalarán sus dependencias y devoluciones, y se ejecutará la secuencia de comandos de preparación, antes de que el paquete sea empaquetado e instalado.

Las siguientes variables de entorno git son reconocidas por npm y se agregarán al entorno cuando se ejecute git:

  • GIT_ASKPASS
  • GIT_EXEC_PATH
  • GIT_PROXY_COMMAND
  • GIT_SSH
  • GIT_SSH_COMMAND
  • GIT_SSL_CAINFO GIT_SSL_NO_VERIFY

Vea la página del manual de git para más detalles.

Ejemplos:

npm install git+ssh://[email protected]:npm/npm.git#v1.0.27 npm install git+ssh://[email protected]:npm/npm#semver:^5.0 npm install git+https://[email protected]/npm/npm.git npm install git://github.com/npm/npm.git#v1.0.27 GIT_SSH_COMMAND=''ssh -i ~/.ssh/custom_ident'' npm install git+ssh://[email protected]:npm/npm.git npm install


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

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

Si tiene problemas continuos, puede ser un problema con cualquier paquete que esté usando.


Los métodos se cubren bastante bien ahora en documentation así como en las muchas otras respuestas aquí.

npm install git+ssh://[email protected]:<githubname>/<githubrepo.git[#<commit-ish>] npm install git+ssh://[email protected]:<githubname>/<githubrepo.git>[#semver:^x.x] npm install git+https://[email protected]/<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 npm que agrega el script de prepare para reemplazar el script de prepublish . Esto soluciona un problema de larga data donde los módulos instalados a través de git no ejecutaron el script de publicación previa y, por lo tanto, no completaron los pasos de compilación que se producen cuando se publica un módulo en el registro npm. Consulte https://github.com/npm/npm/issues/3055 .

Por supuesto, los autores del módulo deberán actualizar su package.json para usar la nueva directiva de prepare para que esto comience a funcionar.


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

git+https://[email protected]/visionmedia/express.git

o este sabor si necesitas SSH:

git+ssh://[email protected]/visionmedia/express.git


Prueba este comando

npm install github:[Organisation]/[Repository]#[master/BranchName] -g

Este comando funcionó para mí.

npm install github:BlessCSS/bless#3.x -g


Puede instalar directamente un comando github repo por npm install , así: npm install https://github.com/futurechallenger/npm_git_install.git --save

NOTA: En el repositorio que se instalará mediante el comando npm:

  1. quizás tengas que tener una carpeta dist en tu repositorio, según el comentario de @Dan Dascalescu.
  2. Definitivamente tienes que tener un package.json en tu repositorio! que olvido añadir.

Si git no está instalado, podemos intentarlo.

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


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


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

o

npm install visionmedia/express#branch

También hay soporte para la instalación directamente desde Gist, Bitbucket, Gitlab y varios otros formatos especializados. Mira la documentation npm install para todos ellos.


Tambien podrias hacer

npm i alex-cory/fasthacks

o

npm i github:alex-cory/fasthacks

Básicamente:

npm i user_or_org/repo_name


ACTUALIZAR ahora que puede hacer: npm install git://github.com/foo/bar.git
o en package.json :

"dependencies": { "bar": "git://github.com/foo/bar.git" }