Intentar instalar módulos desde github da como resultado:
ENOENT error en package.json.
Se reproduce fácilmente usando express:
npm install https://github.com/visionmedia/express
arroja 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! <[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
github
npm
npm-install
node-modules
chico mograbi
fuente
fuente
"express": "github:visionmedia/express"
a la"dependencies"
sección depackage.json file
, luego ejecutar:npm install
(como se menciona a continuación)Respuestas:
Porque
https://github.com/visionmedia/express
es la URL de una página web y no un módulo npm. Usa este sabor:o este sabor si necesitas SSH:
fuente
git+https://github.com/visionmedia/express.git
usar https en lugar de ssh.package.json
archivo o de lo contrario obtendrá este error:Error: ENOENT, open 'tmp.tgz-unpack/package.json'
.#
para usar una rama específica del shell, es decir:npm install git+https://github.com/user/repo.git\#branch
También puedes hacer la
npm install visionmedia/express
instalación desde Githubo
También hay soporte para instalar directamente desde un Gist, Bitbucket, Gitlab y otros formatos especializados. Mira la
npm install
documentación para todos ellos.fuente
github.com
solo funciona.Si git no está instalado, podemos intentar
fuente
master
. Probablemente sea más seguro hacerlo de esa manera./tarball/
al principioActualización de septiembre de 2016
La instalación desde URL de github https de vanilla ahora funciona:
EDITAR 1: hay un par de usuarios que comentan 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 / sin compilar / con errores. Para ser claros (aunque debería ser evidente): dado que el código en el repositorio está en un estado utilizable por npm , ahora puede instalarlo muy felizmente directamente desde github
EDITAR 2: (21-10-2019) Ahora estamos viviendo a través de "Peak Typecript / React / Babel", y por lo tanto, la compilación de JavaScript se ha vuelto bastante común. Si necesita tener en cuenta la compilación, investigue
prepare
. Dicho esto, los módulos NPM no necesitan compilarse , y es aconsejable suponer que la compilación no es la predeterminada, especialmente para los módulos de nodos más antiguos (y posiblemente también para los muy nuevos y modernos "ESNext" -y).fuente
dist
carpeta, y la mayoría no. El problema al que me vinculé es un error npm: elprebuild
paso no se ejecuta al instalar desde GitHub. Como ejemplo, intente instalar node-influx / node-influx .dist
carpetas PUEDEN instalarse desde GitHub, por ejemplo:npm install https://github.com/fergiemcdowall/search-index-adder
funciona perfectamente./lib
(como si tuviera una carpeta dist). Mi punto es que solo incluir la URL de GitHub de un repositorio en package.jons no garantiza que funcione para instalar ese repositorio. Los módulos escritos en TypeScript, por ejemplo, necesitan insertar su código transpilado en el repositorio. Por lo general, no hacen esto, sino que usan un script de prepublicación para volcar el código .JS en una carpeta dist, que se carga en npmjs.com.prepare
script para "instalaciones" desnudas, que incluye git deps. Lo que significa que los comentarios anteriores sobre las carpetas de compilación y dist están desactualizados. Cualquier paquete que establezca correctamente su compilación para ejecutarseprepare
funcionará bien como un git dep sin comprometer ningún activo compilado en git.También hay
npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH}
que usar una rama diferente.fuente
La respuesta principal 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.
Si tiene problemas continuos, podría ser un problema con el paquete que estaba utilizando.
fuente
Los métodos se cubren bastante bien ahora en la documentación de instalación de npm, así como en las numerosas otras respuestas aquí.
Sin embargo, algo notable que ha cambiado recientemente es que npm agrega el
prepare
script para reemplazar elprepublish
script. Esto soluciona un problema de larga data en el que los módulos instalados a través de git no ejecutaban elprepublish
script y, por lo tanto, no completaban los pasos de compilación que se producen cuando se publica un módulo en el registro npm. Ver https://github.com/npm/npm/issues/3055 .Por supuesto, los autores del módulo necesitarán actualizar su package.json para usar la nueva
prepare
directiva para que esto comience a funcionar.fuente
ACTUALIZACIÓN ahora puede hacer:
npm install git://github.com/foo/bar.git
o en
package.json
:fuente
La forma general de la sintaxis es
lo que significa que para su caso será
De npmjs docs:
fuente
Instalarlo directamente:
Alternativamente, puede agregar
"express": "github:visionmedia/express"
a la"dependencies"
sección delpackage.json
archivo y luego ejecutar:fuente
También podrías hacer
o
Básicamente:
fuente
Puede instalar directamente un repositorio de github por
npm install
comando, de esta manera:npm install https://github.com/futurechallenger/npm_git_install.git --save
NOTA: En el repositorio que se instalará mediante el comando npm:
fuente
dist
carpeta ni ningún código de compilación en su repositorio. Solo necesita usar unprepare
scriptpackage.json
.Simple :
ejemplo:
fuente
Lo intenté,
npm install git+https://github.com/visionmedia/express
pero tardó demasiado y no estaba seguro de que funcionaría.Lo que funcionó para mí fue -
yarn add git+https://github.com/visionmedia/express
.fuente
Prueba este comando
Este comando funcionó para mí.
fuente
~/node_modules
, entonces nunca necesitará sudo.